【Linux 】errno 错误码对照表和宏|error(转)

目录

错误对照表:

错误码对应宏

根据错误码打印错误信息


原文:Linux errno 错误对照表-https://blog.youkuaiyun.com/gpengtao/article/details/7553307

错误码对应宏

EPERM		    1    /* Operation not permitted*/
ENOENT		    2    /* No such file or directory*/
ESRCH		    3    /* No such process*/
EINTR		    4    /* Interrupted system call*/
EIO			    5    /* I/O error*/
ENXIO		    6    /* No such device or address*/
E2BIG 		    7    /* Argument list too long*/
ENOEXEC		    8    /* Exec format error*/
EBADF		    9    /* Bad file number*/
ECHILD 		    10   /* No child processes*/
EAGAIN 	        11   /* Try again*/
ENOMEM		    12   /* Out of memory*/
EACCES		    13   /* Permission denied*/
EFAULT          14   /* Bad address*/
ENOTBLK         15   /* Block device required*/
EBUSY           16   /* Device or resource busy*/
EEXIST          17   /* File exists*/
EXDEV           18   /* Cross-device link*/
ENODEV          19   /* No such device*/
ENOTDIR         20   /* Not a directory*/
EISDIR          21   /* Is a directory*/
EINVAL          22   /* Invalid argument*/
ENFILE          23   /* File table overflow*/
EMFILE          24   /* Too many open files*/
ENOTTY          25   /* Not a typewriter*/
ETXTBSY         26   /* Text file busy*/
EFBIG           27   /* File too large*/
ENOSPC          28   /* No space left on device*/
ESPIPE          29   /* Illegal seek*/
EROFS           30   /* Read-only file system*/
EMLINK          31   /* Too many links*/
EPIPE           32   /* Broken pipe*/
EDOM            33   /* Math argument out of domainof func */
ERANGE          34   /* Math result notrepresentable */
EDEADLK         35   /* Resource deadlock wouldoccur */
ENAMETOOLONG    36   /* File name too long */
ENOLCK          37   /* No record locks available*/
ENOSYS          38   /* Function not implemented*/
ENOTEMPTY       39   /*Directory not empty */
ELOOP           40   /* Too many symbolic linksencountered */
EWOULDBLOCK   EAGAIN /*Operation would block */
ENOMSG          42   /* No message of desired type*/
EIDRM           43   /* Identifier removed*/
ECHRNG          44   /* Channel number out of range*/
EL2NSYNC        45   /* Level2 not synchronized */
EL3HLT          46   /* Level 3 halted*/
EL3RST          47   /* Level 3 reset*/
ELNRNG          48   /* Link number out of range*/
EUNATCH         49   /* Protocol driver notattached */
ENOCSI          50   /* No CSI structure available*/
EL2HLT          51   /* Level 2 halted*/
EBADE           52   /* Invalid exchange*/
EBADR           53   /* Invalid request descriptor*/
EXFULL          54   /* Exchange full*/
ENOANO          55   /* No anode*/
EBADRQC         56   /* Invalid request code*/
EBADSLT         57   /* Invalid slot*/
EDEADLOCK       EDEADLK
EBFONT          59   /* Bad font file format*/
ENOSTR          60   /* Device not a stream*/
ENODATA         61   /* No data available*/
ETIME           62   /* Timer expired*/
ENOSR           63   /* Out of streams resources*/
ENONET          64   /* Machine is not on thenetwork */
ENOPKG          65   /* Package not installed*/
EREMOTE         66   /* Object is remote*/
ENOLINK         67   /* Link has been severed*/
EADV            68   /* Advertise error*/
ESRMNT          69   /* Srmount error*/
ECOMM           70   /* Communication error on send*/
EPROTO          71   /* Protocol error*/
EMULTIHOP       72    /*Multihop attempted */
EDOTDOT         73   /* RFS specific error*/
EBADMSG         74   /* Not a data message*/
EOVERFLOW       75    /* Valuetoo large for defined data type */
ENOTUNIQ        76    /* Namenot unique on network */
EBADFD          77   /* File descriptor in badstate */
EREMCHG         78   /* Remote address changed*/
ELIBACC         79   /* Can not access a neededshared library */
ELIBBAD         80   /* Accessing a corruptedshared library */
ELIBSCN         81   /* .lib section in a.outcorrupted */
ELIBMAX         82   /* Attempting to link in toomany shared libraries */
ELIBEXEC        83   /* Cannotexec a shared library directly */
EILSEQ          84   /* Illegal byte sequence*/
ERESTART        85   /*Interrupted system call should be restarted */
ESTRPIPE        86   /*Streams pipe error */
EUSERS          87   /* Too many users*/
ENOTSOCK        88   /* Socketoperation on non-socket */
EDESTADDRREQ    89   /* Destination address required*/
EMSGSIZE        90   /*Message too long */
EPROTOTYPE      91   /*Protocol wrong type for socket */
ENOPROTOOPT     92   /*Protocol not available */
EPROTONOSUPPORT 93   /* Protocol not supported */
ESOCKTNOSUPPORT 94   /* Socket type not supported*/
EOPNOTSUPP      95   /*Operation not supported on transport endpoint*/
EPFNOSUPPORT    96   /* Protocol family not supported*/
EAFNOSUPPORT    97   /* Address family not supported by protocol*/
EADDRINUSE      98   /*Address already in use */
EADDRNOTAVAIL   99   /* Cannot assign requested address*/
ENETDOWN        100  /*Network is down */
ENETUNREACH     101  /*Network is unreachable */
ENETRESET       102  /*Network dropped connection because of reset */
ECONNABORTED    103  /* Software caused connection abort*/
ECONNRESET      104  /*Connection reset by peer */
ENOBUFS         105  /* No buffer space available*/
EISCONN         106  /* Transport endpoint isalready connected */
ENOTCONN        107  /*Transport endpoint is not connected */
ESHUTDOWN       108  /*Cannot send after transport endpoint shutdown*/
ETOOMANYREFS    109  /* Too many references: cannot splice*/
ETIMEDOUT       110  /*Connection timed out */
ECONNREFUSED    111  /* Connection refused */
EHOSTDOWN       112  /* Hostis down */
EHOSTUNREACH    113  /* No route to host */
EALREADY        114  /*Operation already in progress */
EINPROGRESS     115  /*Operation now in progress */
ESTALE          116  /* Stale NFS file handle*/
EUCLEAN         117  /* Structure needs cleaning*/
ENOTNAM         118  /* Not a XENIX named type file*/
ENAVAIL         119  /* No XENIX semaphoresavailable */
EISNAM          120  /* Is a named type file*/
EREMOTEIO       121  /*Remote I/O error */
EDQUOT          122  /* Quota exceeded*/
ENOMEDIUM       123  /* Nomedium found */
EMEDIUMTYPE     124  /* Wrongmedium type */
ECANCELED       125  /*Operation Canceled */
ENOKEY          126  /* Required key not available*/
EKEYEXPIRED     127  /* Keyhas expired */
EKEYREVOKED     128  /* Keyhas been revoked */
EKEYREJECTED    129  /* Key was rejected by service*/


errno0 :     Success
errno1 :     Operation not permitted
errno2 :     No such file or directory
errno3 :     No such process
errno4 :     Interrupted system call
errno5 :     Input/output error
errno6 :     No such device or address
errno7 :     Argument list too long
errno8 :     Exec format error
errno9 :     Bad file descriptor
errno10 :    No child processes
errno11 :    Resource temporarily unavailable
errno12 :    Cannot allocate memory
errno13 :    Permission denied
errno14 :    Bad address
errno15 :    Block device required
errno16 :    Device or resource busy
errno17 :    File exists
errno18 :    Invalid cross-device link
errno19 :    No such device
errno20 :    Not a directory
errno21 :    Is a directory
errno22 :    Invalid argument
errno23 :    Too many open files in system
errno24 :    Too many open files
errno25 :    Inappropriate ioctl for device
errno26 :    Text file busy
errno27 :    File too large
errno28 :    No space left on device
errno29 :    Illegal seek
errno30 :    Read-only file system
errno31 :    Too many links
errno32 :    Broken pipe
errno33 :    Numerical argument out of domain
errno34 :    Numerical result out of range
errno35 :    Resource deadlock avoided
errno36 :    File name too long
errno37 :    No locks available
errno38 :    Function not implemented
errno39 :    Directory not empty
errno40 :    Too many levels of symbolic links
errno41 :    Unknown error 41
errno42 :    No message of desired type
errno43 :    Identifier removed
errno44 :    Channel number out of range
errno45 :    Level 2 not synchronized
errno46 :    Level 3 halted
errno47 :    Level 3 reset
errno48 :    Link number out of range
errno49 :    Protocol driver not attached
errno50 :    No CSI structure available
errno51 :    Level 2 halted
errno52 :    Invalid exchange
errno53 :    Invalid request descriptor
errno54 :    Exchange full
errno55 :    No anode
errno56 :    Invalid request code
errno57 :    Invalid slot
errno58 :    Unknown error 58
errno59 :    Bad font file format
errno60 :    Device not a stream
errno61 :    No data available
errno62 :    Timer expired
errno63 :    Out of streams resources
errno64 :    Machine is not on the network
errno65 :    Package not installed
errno66 :    Object is remote
errno67 :    Link has been severed
errno68 :    Advertise error
errno69 :    Srmount error
errno70 :    Communication error on send
errno71 :    Protocol error
errno72 :    Multihop attempted
errno73 :    RFS specific error
errno74 :    Bad message
errno75 :    Value too large for defined datatype
errno76 :    Name not unique on network
errno77 :    File descriptor in bad state
errno78 :    Remote address changed
errno79 :    Can not access a needed sharedlibrary
errno80 :    Accessing a corrupted sharedlibrary
errno81 :    .lib section in a.out corrupted
errno82 :    Attempting to link in too manyshared libraries
errno83 :    Cannot exec a shared librarydirectly
errno84 :    Invalid or incomplete multibyte orwide character
errno85 :    Interrupted system call should berestarted
errno86 :    Streams pipe error
errno87 :    Too many users
errno88 :    Socket operation on non-socket
errno89 :    Destinationaddress required
errno90 :    Message too long
errno91 :    Protocol wrong type for socket
errno92 :    Protocol not available
errno93 :    Protocol not supported
errno94 :    Socket type not supported
errno95 :    Operation not supported
errno96 :    Protocol family not supported
errno97 :    Address family not supported byprotocol
errno98 :    Address already in use
errno99 :    Cannot assign requested address
errno100 :   Network is down
errno101 :   Network is unreachable
errno102 :   Network dropped connection onreset
errno103 :   Software caused connection abort
errno104 :   Connection reset by peer
errno105 :   No buffer space available
errno106 :   Transport endpoint is alreadyconnected
errno107 :   Transport endpoint is notconnected
errno108 :   Cannot send after transportendpoint shutdown
errno109 :   Too many references: cannot splice
errno110 :   Connection timed out
errno111 :   Connection refused
errno112 :   Host is down
errno113 :   No route to host
errno114 :   Operation already in progress
errno115 :   Operation now in progress
errno116 :   Stale NFS file handle
errno117 :   Structure needs cleaning
errno118 :   Not a XENIX named type file
errno119 :   No XENIX semaphores available
errno120 :   Is a named type file
errno121 :   Remote I/O error
errno122 :   Disk quota exceeded
errno123 :   No medium found
errno124 :   Wrong medium type
errno125 :   Operation canceled
errno126 :   Required key not available
errno127 :   Key has expired
errno128 :   Key has been revoked
errno129 :   Key was rejected by service
errno130 :   Owner died
errno131 :   State not recoverable
errno132 :   Operation not possible due toRF-kill
errno133 :   Unknown error 133
errno134 :   Unknown error 134
errno135 :   Unknown error 135
errno136 :   Unknown error 136
errno137 :   Unknown error 137
errno138 :   Unknown error 138
errno139 :   Unknown error 139

根据错误码打印错误信息

errno 在 <errno.h> 中定义,错误 Exx 的宏定义在 /usr/include/asm-generic 文件夹下面的  errno-base.h 和 errno.h,分别定义了 1-34 、35-132 的错误定义。

strerror() 函数依据 errno 值返回错误描述字符串,下面程序打印对照表:

#include <errno.h>
#include <string.h>
#include <stdio.h>
 
int main()
{
    int i;
    for(i = 0; i < 140; ++i)
    {
        errno = i;
        printf("errno %d :\t\t%s\n",i,strerror(errno));
    }
    return 0;
}



原文链接:https://blog.youkuaiyun.com/bandaoyu/article/details/124350500

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值