Linux errno 错误对照表

errno 在 <errno.h> 中定义,错误 Exx 的宏定义在 /usr/include/asm-generic 文件夹下面的 errno-base.h 和 errno.h,分别定义了 1-34 、35-132 的错误定义。strerror() 函数依据 errno 值返回错误描述字符串,下面程序打印对照表:<!–
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/–>01.#include <errno.h>
02.#include <string.h>
03.#include <stdio.h>
04.
05.int main()
06.{
07. int i;
08. for(i = 0; i < 140; ++i)
09. {
10. errno = i;
11. printf(“errno %d :\t\t%s\n“,i,strerror(errno));
12. }
13. return 0;
14.}

错误对照表:errno0 : Successerrno1 : Operation not permittederrno2 : No such file or directoryerrno3 : No such processerrno4 : Interrupted system callerrno5 : Input/output errorerrno6 : No such device or addresserrno7 : Argument list too longerrno8 : Exec format errorerrno9 : Bad file descriptorerrno10 : No child processeserrno11 : Resource temporarily unavailableerrno12 : Cannot allocate memoryerrno13 : Permission deniederrno14 : Bad addresserrno15 : Block device requirederrno16 : Device or resource busyerrno17 : File existserrno18 : Invalid cross-device linkerrno19 : No such deviceerrno20 : Not a directoryerrno21 : Is a directoryerrno22 : Invalid argumenterrno23 : Too many open files in systemerrno24 : Too many open fileserrno25 : Inappropriate ioctl for deviceerrno26 : Text file busyerrno27 : File too largeerrno28 : No space left on deviceerrno29 : Illegal seekerrno30 : Read-only file systemerrno31 : Too many linkserrno32 : Broken pipeerrno33 : Numerical argument out of domainerrno34 : Numerical result out of rangeerrno35 : Resource deadlock avoidederrno36 : File name too longerrno37 : No locks availableerrno38 : Function not implementederrno39 : Directory not emptyerrno40 : Too many levels of symbolic linkserrno41 : Unknown error 41errno42 : No message of desired typeerrno43 : Identifier removederrno44 : Channel number out of rangeerrno45 : Level 2 not synchronizederrno46 : Level 3 haltederrno47 : Level 3 reseterrno48 : Link number out of rangeerrno49 : Protocol driver not attachederrno50 : No CSI structure availableerrno51 : Level 2 haltederrno52 : Invalid exchangeerrno53 : Invalid request descriptorerrno54 : Exchange fullerrno55 : No anodeerrno56 : Invalid request codeerrno57 : Invalid sloterrno58 : Unknown error 58errno59 : Bad font file formaterrno60 : Device not a streamerrno61 : No data availableerrno62 : Timer expirederrno63 : Out of streams resourceserrno64 : Machine is not on the networkerrno65 : Package not installederrno66 : Object is remoteerrno67 : Link has been severederrno68 : Advertise errorerrno69 : Srmount errorerrno70 : Communication error on senderrno71 : Protocol errorerrno72 : Multihop attemptederrno73 : RFS specific errorerrno74 : Bad messageerrno75 : Value too large for defined datatypeerrno76 : Name not unique on networkerrno77 : File descriptor in bad stateerrno78 : Remote address changederrno79 : Can not access a needed sharedlibraryerrno80 : Accessing a corrupted sharedlibraryerrno81 : .lib section in a.out corruptederrno82 : Attempting to link in too manyshared librarieserrno83 : Cannot exec a shared librarydirectlyerrno84 : Invalid or incomplete multibyte orwide charactererrno85 : Interrupted system call should berestartederrno86 : Streams pipe errorerrno87 : Too many userserrno88 : Socket operation on non-socketerrno89 : Destinationaddress requirederrno90 : Message too longerrno91 : Protocol wrong type for socketerrno92 : Protocol not availableerrno93 : Protocol not supportederrno94 : Socket type not supportederrno95 : Operation not supportederrno96 : Protocol family not supportederrno97 : Address family not supported byprotocolerrno98 : Address already in useerrno99 : Cannot assign requested addresserrno100 : Network is downerrno101 : Network is unreachableerrno102 : Network dropped connection onreseterrno103 : Software caused connection aborterrno104 : Connection reset by peererrno105 : No buffer space availableerrno106 : Transport endpoint is alreadyconnectederrno107 : Transport endpoint is notconnectederrno108 : Cannot send after transportendpoint shutdownerrno109 : Too many references: cannot spliceerrno110 : Connection timed outerrno111 : Connection refusederrno112 : Host is downerrno113 : No route to hosterrno114 : Operation already in progresserrno115 : Operation now in progresserrno116 : Stale NFS file handleerrno117 : Structure needs cleaningerrno118 : Not a XENIX named type fileerrno119 : No XENIX semaphores availableerrno120 : Is a named type fileerrno121 : Remote I/O errorerrno122 : Disk quota exceedederrno123 : No medium founderrno124 : Wrong medium typeerrno125 : Operation cancelederrno126 : Required key not availableerrno127 : Key has expirederrno128 : Key has been revokederrno129 : Key was rejected by serviceerrno130 : Owner diederrno131 : State not recoverableerrno132 : Operation not possible due toRF-killerrno133 : Unknown error 133errno134 : Unknown error 134errno135 : Unknown error 135errno136 : Unknown error 136errno137 : Unknown error 137errno138 : Unknown error 138errno139 : Unknown error 139
由上可见Linux对错误宏的定义。头文件 /usr/include/asm-generic/errno-base.h 的源码:#ifndef _ASM_GENERIC_ERRNO_BASE_H
#define _ASM_GENERIC_ERRNO_BASE_H#define EPERM 1 /* Operation not permitted /
#define ENOENT2 /
No such file or directory /
#define ESRCH 3 /
No such process /
#define EINTR 4 /
Interrupted system call /
#define EIO 5 /
I/O error /
#define ENXIO 6 /
No such device or address /
#define E2BIG 7 /
Argument list too long /
#define ENOEXEC8 /
Exec format error /
#define EBADF 9 /
Bad file number /
#define ECHILD10 /
No child processes /
#define EAGAIN11 /
Try again /
#define ENOMEM12 /
Out of memory /
#define EACCES13 /
Permission denied /
#define EFAULT14 /
Bad address /
#define ENOTBLK15 /
Block device required /
#define EBUSY 16 /
Device or resource busy /
#define EEXIST17 /
File exists /
#define EXDEV 18 /
Cross-device link /
#define ENODEV19 /
No such device /
#define ENOTDIR20 /
Not a directory /
#define EISDIR21 /
Is a directory /
#define EINVAL22 /
Invalid argument /
#define ENFILE23 /
File table overflow /
#define EMFILE24 /
Too many open files /
#define ENOTTY25 /
Not a typewriter /
#define ETXTBSY26 /
Text file busy /
#define EFBIG 27 /
File too large /
#define ENOSPC28 /
No space left on device /
#define ESPIPE29 /
Illegal seek /
#define EROFS 30 /
Read-only file system /
#define EMLINK31 /
Too many links /
#define EPIPE 32 /
Broken pipe /
#define EDOM 33 /
Math argument out of domain of func /
#define ERANGE34 /
Math result not representable /#endif
头文件/usr/include/asm-generic/erno.h源码:#ifndef _ASM_GENERIC_ERRNO_H
#define _ASM_GENERIC_ERRNO_H#include <asm-generic/errno-base.h>#define EDEADLK35 /
Resource deadlock would occur /
#define ENAMETOOLONG36 /
File name too long /
#define ENOLCK37 /
No record locks available /
#define ENOSYS38 /
Function not implemented /
#define ENOTEMPTY39 /
Directory not empty /
#define ELOOP 40 /
Too many symbolic links encountered /
#define EWOULDBLOCKEAGAIN /
Operation would block /
#define ENOMSG42 /
No message of desired type /
#define EIDRM 43 /
Identifier removed /
#define ECHRNG44 /
Channel number out of range /
#define EL2NSYNC45 /
Level 2 not synchronized /
#define EL3HLT46 /
Level 3 halted /
#define EL3RST47 /
Level 3 reset /
#define ELNRNG48 /
Link number out of range /
#define EUNATCH49 /
Protocol driver not attached /
#define ENOCSI50 /
No CSI structure available /
#define EL2HLT51 /
Level 2 halted /
#define EBADE 52 /
Invalid exchange /
#define EBADR 53 /
Invalid request descriptor /
#define EXFULL54 /
Exchange full /
#define ENOANO55 /
No anode /
#define EBADRQC56 /
Invalid request code /
#define EBADSLT57 /
Invalid slot /#define EDEADLOCKEDEADLK#define EBFONT59 / Bad font file format /
#define ENOSTR60 /
Device not a stream /
#define ENODATA61 /
No data available /
#define ETIME 62 /
Timer expired /
#define ENOSR 63 /
Out of streams resources /
#define ENONET64 /
Machine is not on the network /
#define ENOPKG65 /
Package not installed /
#define EREMOTE66 /
Object is remote /
#define ENOLINK67 /
Link has been severed /
#define EADV 68 /
Advertise error /
#define ESRMNT69 /
Srmount error /
#define ECOMM 70 /
Communication error on send /
#define EPROTO71 /
Protocol error /
#define EMULTIHOP72 /
Multihop attempted /
#define EDOTDOT73 /
RFS specific error /
#define EBADMSG74 /
Not a data message /
#define EOVERFLOW75 /
Value too large for defined data type /
#define ENOTUNIQ76 /
Name not unique on network /
#define EBADFD77 /
File descriptor in bad state /
#define EREMCHG78 /
Remote address changed /
#define ELIBACC79 /
Can not access a needed shared library /
#define ELIBBAD80 /
Accessing a corrupted shared library /
#define ELIBSCN81 /
.lib section in a.out corrupted /
#define ELIBMAX82 /
Attempting to link in too many shared libraries /
#define ELIBEXEC83 /
Cannot exec a shared library directly /
#define EILSEQ84 /
Illegal byte sequence /
#define ERESTART85 /
Interrupted system call should be restarted /
#define ESTRPIPE86 /
Streams pipe error /
#define EUSERS87 /
Too many users /
#define ENOTSOCK88 /
Socket operation on non-socket /
#define EDESTADDRREQ89 /
Destination address required /
#define EMSGSIZE90 /
Message too long /
#define EPROTOTYPE91 /
Protocol wrong type for socket /
#define ENOPROTOOPT92 /
Protocol not available /
#define EPROTONOSUPPORT93 /
Protocol not supported /
#define ESOCKTNOSUPPORT94 /
Socket type not supported /
#define EOPNOTSUPP95 /
Operation not supported on transport endpoint /
#define EPFNOSUPPORT96 /
Protocol family not supported /
#define EAFNOSUPPORT97 /
Address family not supported by protocol /
#define EADDRINUSE98 /
Address already in use /
#define EADDRNOTAVAIL99 /
Cannot assign requested address /
#define ENETDOWN100 /
Network is down /
#define ENETUNREACH101 /
Network is unreachable /
#define ENETRESET102 /
Network dropped connection because of reset /
#define ECONNABORTED103 /
Software caused connection abort /
#define ECONNRESET104 /
Connection reset by peer /
#define ENOBUFS105 /
No buffer space available /
#define EISCONN106 /
Transport endpoint is already connected /
#define ENOTCONN107 /
Transport endpoint is not connected /
#define ESHUTDOWN108 /
Cannot send after transport endpoint shutdown /
#define ETOOMANYREFS109 /
Too many references: cannot splice /
#define ETIMEDOUT110 /
Connection timed out /
#define ECONNREFUSED111 /
Connection refused /
#define EHOSTDOWN112 /
Host is down /
#define EHOSTUNREACH113 /
No route to host /
#define EALREADY114 /
Operation already in progress /
#define EINPROGRESS115 /
Operation now in progress /
#define ESTALE116 /
Stale NFS file handle /
#define EUCLEAN117 /
Structure needs cleaning /
#define ENOTNAM118 /
Not a XENIX named type file /
#define ENAVAIL119 /
No XENIX semaphores available /
#define EISNAM120 /
Is a named type file /
#define EREMOTEIO121 /
Remote I/O error /
#define EDQUOT122 /
Quota exceeded /#define ENOMEDIUM123 / No medium found /
#define EMEDIUMTYPE124 /
Wrong medium type /
#define ECANCELED125 /
Operation Canceled /
#define ENOKEY126 /
Required key not available /
#define EKEYEXPIRED127 /
Key has expired /
#define EKEYREVOKED128 /
Key has been revoked /
#define EKEYREJECTED129 /
Key was rejected by service // for robust mutexes /
#define EOWNERDEAD130 /
Owner died /
#define ENOTRECOVERABLE131 /
State not recoverable /#define ERFKILL 132/ Operation not possible due to RF-kill */#endif
<原文地址:http://www.kankanews.com/ICkengine/archives/37721.shtml>