只是好奇.哪些系统提供EAGAIN和EWOULDBLOCK #define它们作为不同的值?
osg*_*sgx 26
有一些...... http://www.gnu.org/s/hello/manual/libc/Error-Codes.html
可移植性注意:在许多较旧的Unix系统中,这种情况由EWOULDBLOCK指示,这是一个与EAGAIN不同的明显错误代码.要使程序可移植,您应检查两个代码并对其进行相同处理.
http://lists.parisc-linux.org/hypermail/parisc-linux/9895.html
在一些SysV系统EAGAIN!= EWOULDBLOCK.我想我们继承了HPUX的errno定义......
旧的AIX也是这样的系统:http://programming.itags.org/unix-linux-programming/81597/
HP-UX(以及旧版本的AIX)
对于AIX,我找到了代码列表:http://homepage3.nifty.com/owl_h0h0/unix/job/UNIX/tutorial/error.html
11 EAGAIN; 54 EWOULDBLOCK
OS/390也是:http://web.archiveorange.com/archive/v/zvbaIz8u6TzsQHHjfzOi
OS/390和EWOULDBLOCK!= EAGAIN的其他平台
有更全面的表:http://www.ioplex.com/~miallen/errcmp.html
SUSv3 AIX 4.3,5.1 HP-UX 11.22 Solaris 9,10 Linux 2.4.28,2.6.9 IRIX 6.5[4] OSF1 FreeBSD 5.2.1 OSX 10.3.8 MSVC6
EAGAIN 1 0 Resource unavailable, try again [3] 11 Resource temporarily unavailable 11 No more processes 11 Resource temporarily unavailable 11 Try again 11 Resource temporarily unavailable 11 ditto 35 Resource temporarily unavailable 35 Resource temporarily unavailable 11 Resource temporarily unavailable
EWOULDBLOCK 0.9 0 Operation would block [3] 54 Operation would block [2] 246 Operation would block 11 11 Operation would block 11 Resource temporarily unavailable 35 Operation would block 35 Operation would block 35 Operation would block
Run Code Online (Sandbox Code Playgroud)
那么,AIX 4.3,5.1; HP-UX 11.22和OSF1对EAGAIN和EWOULDBLOCK使用不同的代码