linux错误码大全
查看错误代码errno是调试程序的一个重要方法。当linuc
Capi函数发生异常时,一般会将errno变量(需includeerrno.h)赋一个整数值,不同的值表示不同的含义,可以通过查看该值推测出错的原因。在实际编程中用这一招解决了不少原本看来莫名其妙的问题。比较麻烦的是每次都要去linux源代码里面查找错误代码的含义,现在把它贴出来,以后需要查时就来这里看了。
1-34号错误号是在内核源码的include/asm-generic/errno-base.h定义
35-132则是在include/asm-generic/errno.h中定义
剩下还有一些更大的错误号是留给内核级别的,如系统调用等,用户程序一般是看不见的这些号的,
Ubuntu9.10中/usr/src/linux-headers-2.6.31-21-generic/include/linux/errno.h
#ifndef_ASM_GENERIC_ERRNO_BASE_H #define_ASM_GENERIC_ERRNO_BASE_H
#define EPERM 1 /* Operation not permitted*/ #define ENOENT
2 /* 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
ENOEXEC 8 /* Exec format error*/ #define EBADF 9 /* Bad
file number*/ #define ECHILD 10 /* No child processes*/ #define
EAGAIN 11 /* Try again*/ #define ENOMEM 12 /* Out of memory*/
#define EACCES 13 /* Permission denied*/ #define EFAULT 14
/* Bad address*/ #define ENOTBLK 15 /* Block device required*/
#define EBUSY 16 /* Device or resource busy*/ #define EEXIST
17 /* File exists*/ #define EXDEV 18 /* Cross-device link*/
#define ENODEV 19 /* No such device*/ #define ENOTDIR 20 /*
Not a directory*/ #define EISDIR 21 /* Is a directory*/ #define
EINVAL 22 /* Invalid argument*/ #define ENFILE 23 /* File
table overflow*/ #define EMFILE 24 /* Too many open files*/ #define
ENOTTY 25 /* Not a typewriter*/ #define ETXTBSY 26 /* Text
file busy*/ #define EFBIG 27 /* File too large*/ #define ENOSPC
28 /* No space left on device*/ #define ESPIPE 29 /* Illegal
seek*/ #define EROFS 30 /* Read-only file system*/ #define EMLINK
31 /* Too many links*/ #define EPIPE 32 /* Broken pipe*/
#define EDOM 33 /* Math argument out of domainof func */ #define
ERANGE 34 /* Math result notrepresentable */
#endif
#include<asm-generic/errno-base.h>
#define EDEADLK 35 /* Resource deadlock wouldoccur */ #define
ENAMETOOLONG 36 /* File name too long */ #define ENOLCK 37 /* No
record locks available*/ #define ENOSYS 38 /* Function not
implemented*/ #define ENOTEMPTY 39 /*Directory not empty */ #define
ELOOP 40 /* Too many symbolic linksencountered */ #define
EWOULDBLOCK EAGAIN /*Operation would block */ #define ENOMSG 42
/* No message of desired type*/ #define EIDRM 43 /* Identifier
removed*/ #define ECHRNG 44 /* Channel number out of range*/ #define
EL2NSYNC 45 /* Level2 not synchronized */ #define EL3HLT 46 /*
Level 3 halted*/ #define EL3RST 47 /* Level 3 reset*/ #define
ELNRNG 48 /* Link number out of range*/ #define EUNATCH 49
/* Protocol driver notattached */ #define ENOCSI 50 /* No CSI
structure available*/ #define EL2HLT 51 /* Level 2 halted*/ #define
EBADE 52 /* Invalid exchange*/ #define EBADR 53 /* Invalid
request descriptor*/ #define EXFULL 54 /* Exchange full*/ #define
ENOANO 55 /* No anode*/ #define EBADRQC 56 /* Invalid
request code*/ #define EBADSLT 57 /* Invalid slot*/
#define EDEADLOCK EDEADLK #define EBFONT 59 /* Bad font file
format*/ #define ENOSTR 60 /* Device not a stream*/ #define ENODATA
61 /* No data available*/ #define ETIME 62 /* Timer expired*/
#define ENOSR 63 /* Out of streams resources*/ #define ENONET
64 /* Machine is not on thenetwork */ #define ENOPKG 65 /* Package
not installed*/ #define EREMOTE 66 /* Object is remote*/ #define
ENOLINK 67 /* Link has been severed*/ #define EADV 68 /*
Advertise error*/ #define ESRMNT 69 /* Srmount error*/ #define
ECOMM 70 /* Communication error on send*/ #define EPROTO 71
/* Protocol error*/ #define EMULTIHOP 72 /*Multihop attempted */
#define EDOTDOT 73 /* RFS specific error*/ #define EBADMSG
74 /* Not a data message*/ #define EOVERFLOW 75 /* Valuetoo large for
defined data type */ #define ENOTUNIQ 76 /* Namenot unique on network */
#define EBADFD 77 /* File descriptor in badstate */ #define EREMCHG
78 /* Remote address changed*/ #define ELIBACC 79 /* Can not
access a neededshared library */ #define ELIBBAD 80 /* Accessing a
corruptedshared library */ #define ELIBSCN 81 /* .lib section in
a.outcorrupted */ #define ELIBMAX 82 /* Attempting to link in toomany
shared libraries */ #define ELIBEXEC 83 /* Cannotexec a shared library
directly */ #define EILSEQ 84 /* Illegal byte sequence*/ #define
ERESTART 85 /*Interrupted system call should be restarted */ #define
ESTRPIPE 86 /*Streams pipe error */ #define EUSERS 87 /* Too
many users*/ #define ENOTSOCK 88 /* Socketoperation on non-socket */
#define EDESTADDRREQ 89 /* Destination address required*/ #define
EMSGSIZE 90 /*Message too long */ #define EPROTOTYPE 91 /*Protocol
wrong type for socket */ #define ENOPROTOOPT 92 /*Protocol not available
*/ #define EPROTONOSUPPORT 93 /* Protocol not supported */ #define
ESOCKTNOSUPPORT 94 /* Socket type not supported*/ #define EOPNOTSUPP
95 /*Operation not supported on transport endpoint*/ #define
EPFNOSUPPORT 96 /* Protocol family not supported*/ #define EAFNOSUPPORT
97 /* Address family not supported by protocol*/ #define EADDRINUSE 98
/*Address already in use */ #define EADDRNOTAVAIL 99 /* Cannot assign
requested address*/ #define ENETDOWN 100 /*Network is down */ #define
ENETUNREACH 101 /*Network is unreachable */ #define ENETRESET 102
/*Network dropped connection because of reset */ #define ECONNABORTED 103
/* Software caused connection abort*/ #define ECONNRESET 104
/*Connection reset by peer */ #define ENOBUFS 105 /* No buffer space
available*/ #define EISCONN 106 /* Transport endpoint isalready
connected */ #define ENOTCONN 107 /*Transport endpoint is not connected
*/ #define ESHUTDOWN 108 /*Cannot send after transport endpoint
shutdown*/ #define ETOOMANYREFS 109 /* Too many references: cannot
splice*/ #define ETIMEDOUT 110 /*Connection timed out */ #define
ECONNREFUSED 111 /* Connection refused */ #define EHOSTDOWN 112 /*
Hostis down */ #define EHOSTUNREACH 113 /* No route to host */ #define
EALREADY 114 /*Operation already in progress */ #define EINPROGRESS
115 /*Operation now in progress */ #define ESTALE 116 /* Stale
NFS file handle*/ #define EUCLEAN 117 /* Structure needs cleaning*/
#define ENOTNAM 118 /* Not a XENIX named type file*/ #define
ENAVAIL 119 /* No XENIX semaphoresavailable */ #define EISNAM
120 /* Is a named type file*/ #define EREMOTEIO 121 /*Remote I/O
error */ #define EDQUOT 122 /* Quota exceeded*/ #define ENOMEDIUM
123 /* Nomedium found */ #define EMEDIUMTYPE 124 /* Wrongmedium
type */ #define ECANCELED 125 /*Operation Canceled */ #define ENOKEY
126 /* Required key not available*/ #define EKEYEXPIRED 127 /*
Keyhas expired */ #define EKEYREVOKED 128 /* Keyhas been revoked */
#define EKEYREJECTED 129 /* Key was rejected by service*/
/* forrobust mutexes */ #define EOWNERDEAD 130 /* Ownerdied */ #define
ENOTRECOVERABLE 131 /* State not recoverable */
#defineERFKILL 132 /*Operation not possible due to RF-kill */
#ifdef__KERNEL__
/* * These should never be seenby user programs. To return one of ERESTART*
* codes, signal_pending()MUST be set. Note that ptrace can observe these * at
syscall exit tracing,but they will never be left for the debuggeduser *
process tosee. */ #defineERESTARTSYS 512 #defineERESTARTNOINTR 513
#defineERESTARTNOHAND 514 /* restart if no handler..*/ #defineENOIOCTLCMD
515 /* No ioctl command*/ #defineERESTART_RESTARTBLOCK 516 /* restart by
calling sys_restart_syscall*/
/*Defined for the NFSv3 protocol */ #defineEBADHANDLE 521 /* Illegal NFS
file handle*/ #defineENOTSYNC 522 /* Update synchronizationmismatch */
#defineEBADCOOKIE 523 /* Cookie is stale*/ #defineENOTSUPP 524 /*
Operation is not supported*/ #defineETOOSMALL 525 /* Buffer or request is
toosmall */ #defineESERVERFAULT 526 /* An untranslatable erroroccurred */
#defineEBADTYPE 527 /* Type not supported byserver */ #defineEJUKEBOX
528 /* Request initiated, but willnot complete before timeout */
#defineEIOCBQUEUED 529 /* iocb queued, will getcompletion event */
#defineEIOCBRETRY 530 /* iocb queued, will trigger aretry */
#endif
今日推荐