linux下errno详解
errno详解:
Linux中系统调用的错误都存储于errno
中,errno
由操作系统维护,存储就近发生的错误,即下一次的错误码会覆盖掉上一次的错误。
查看系统中所有的errno
所代表的含义,可以采用如下的代码:
#include <stdio.h> #include <string.h> //for strerror() //#include <errno.h> int main() { int tmp = 0; for (tmp = 0; tmp <=256; tmp++) { printf("errno: %2d\t%s\n", tmp, strerror(tmp)); } return 0; }
输出信息如下:
errno: 0 Success errno: 1 Operation not permitted errno: 2 No such file or directory errno: 3 No such process errno: 4 Interrupted system call errno: 5 I/O error errno: 6 No such device or address errno: 7 Argument list too long errno: 8 Exec format error errno: 9 Bad file descriptor errno: 10 No child processes errno: 11 Try again / Resource temporarily unavailable errno: 12 Out of memory errno: 13 Permission denied errno: 14 Bad address errno: 15 Block device required errno: 16 Device or resource busy errno: 17 File exists errno: 18 Cross-device link errno: 19 No such device errno: 20 Not a directory errno: 21 Is a directory errno: 22 Invalid argument errno: 23 File table overflow errno: 24 Too many open files errno: 25 Not a typewriter errno: 26 Text file busy errno: 27 File too large errno: 28 No space left on device errno: 29 Illegal seek errno: 30 Read-only file system errno: 31 Too many links errno: 32 Broken pipe errno: 33 Math argument out of domain of func errno: 34 Math result not representable errno: 35 Resource deadlock would occur errno: 36 File name too long errno: 37 No record locks available errno: 38 Function not implemented errno: 39 Directory not empty errno: 40 Too many symbolic links encountered errno: 41 Unknown error 41 errno: 42 No message of desired type errno: 43 Identifier removed errno: 44 Channel number out of range errno: 45 Level 2 not synchronized errno: 46 Level 3 halted errno: 47 Level 3 reset errno: 48 Link number out of range errno: 49 Protocol driver not attached errno: 50 No CSI structure available errno: 51 Level 2 halted errno: 52 Invalid exchange errno: 53 Invalid request descriptor errno: 54 Exchange full errno: 55 No anode errno: 56 Invalid request code errno: 57 Invalid slot errno: 58 Unknown error 58 errno: 59 Bad font file format errno: 60 Device not a stream errno: 61 No data available errno: 62 Timer expired errno: 63 Out of streams resources errno: 64 Machine is not on the network errno: 65 Package not installed errno: 66 Object is remote errno: 67 Link has been severed errno: 68 Advertise error errno: 69 Srmount error errno: 70 Communication error on send errno: 71 Protocol error errno: 72 Multihop attempted errno: 73 RFS specific error errno: 74 Not a data message errno: 75 Value too large for defined data type errno: 76 Name not unique on network errno: 77 File descriptor in bad state errno: 78 Remote address changed errno: 79 Can not access a needed shared library errno: 80 Accessing a corrupted shared library errno: 81 .lib section in a.out corrupted errno: 82 Attempting to link in too many shared libraries errno: 83 Cannot exec a shared library directly errno: 84 Illegal byte sequence errno: 85 Interrupted system call should be restarted errno: 86 Streams pipe error errno: 87 Too many users errno: 88 Socket operation on non-socket errno: 89 Destination address required errno: 90 Message too long errno: 91 Protocol wrong type for socket errno: 92 Protocol not available errno: 93 Protocol not supported errno: 94 Socket type not supported errno: 95 Operation not supported on transport endpoint errno: 96 Protocol family not supported errno: 97 Address family not supported by protocol errno: 98 Address already in use errno: 99 Cannot assign requested address errno: 100 Network is down errno: 101 Network is unreachable errno: 102 Network dropped connection because of reset errno: 103 Software caused connection abort errno: 104 Connection reset by peer errno: 105 No buffer space available errno: 106 Transport endpoint is already connected errno: 107 Transport endpoint is not connected errno: 108 Cannot send after transport endpoint shutdown errno: 109 Too many references: cannot splice errno: 110 Connection timed out errno: 111 Connection refused errno: 112 Host is down errno: 113 No route to host errno: 114 Operation already in progress errno: 115 Operation now in progress errno: 116 Stale NFS file handle errno: 117 Structure needs cleaning errno: 118 Not a XENIX named type file errno: 119 No XENIX semaphores available errno: 120 Is a named type file errno: 121 Remote I/O error errno: 122 Quota exceeded errno: 123 No medium found errno: 124 Wrong medium type errno: 125 Operation Canceled errno: 126 Required key not available errno: 127 Key has expired errno: 128 Key has been revoked errno: 129 Key was rejected by service errno: 130 Owner died errno: 131 State not recoverable errno: 132~256 Unknown error