Linux errno 错误对照表

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;
}

错误对照表:

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

 

由上可见Linux对错误宏的定义。

头文件 /usr/include/asm-generic/errno-base.h 的源码:

#ifndef _ASM_GENERIC_ERRNO_BASE_H
#define _ASM_GENERIC_ERRNO_BASE_H

#defineEPERM 1/* Operation not permitted */
#defineENOENT2/* No such file or directory */
#defineESRCH 3/* No such process */
#defineEINTR 4/* Interrupted system call */
#defineEIO 5/* I/O error */
#defineENXIO 6/* No such device or address */
#defineE2BIG 7/* Argument list too long */
#defineENOEXEC8/* Exec format error */
#defineEBADF 9/* Bad file number */
#defineECHILD10/* No child processes */
#defineEAGAIN11/* Try again */
#defineENOMEM12/* Out of memory */
#defineEACCES13/* Permission denied */
#defineEFAULT14/* Bad address */
#defineENOTBLK15/* Block device required */
#defineEBUSY 16/* Device or resource busy */
#defineEEXIST17/* File exists */
#defineEXDEV 18/* Cross-device link */
#defineENODEV19/* No such device */
#defineENOTDIR20/* Not a directory */
#defineEISDIR21/* Is a directory */
#defineEINVAL22/* Invalid argument */
#defineENFILE23/* File table overflow */
#defineEMFILE24/* Too many open files */
#defineENOTTY25/* Not a typewriter */
#defineETXTBSY26/* Text file busy */
#defineEFBIG 27/* File too large */
#defineENOSPC28/* No space left on device */
#defineESPIPE29/* Illegal seek */
#defineEROFS 30/* Read-only file system */
#defineEMLINK31/* Too many links */
#defineEPIPE 32/* Broken pipe */
#defineEDOM 33/* Math argument out of domain of func */
#defineERANGE34/* 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>

#defineEDEADLK35/* Resource deadlock would occur */
#defineENAMETOOLONG36/* File name too long */
#defineENOLCK37/* No record locks available */
#defineENOSYS38/* Function not implemented */
#defineENOTEMPTY39/* Directory not empty */
#defineELOOP 40/* Too many symbolic links encountered */
#defineEWOULDBLOCKEAGAIN/* Operation would block */
#defineENOMSG42/* No message of desired type */
#defineEIDRM 43/* Identifier removed */
#defineECHRNG44/* Channel number out of range */
#defineEL2NSYNC45/* Level 2 not synchronized */
#defineEL3HLT46/* Level 3 halted */
#defineEL3RST47/* Level 3 reset */
#defineELNRNG48/* Link number out of range */
#defineEUNATCH49/* Protocol driver not attached */
#defineENOCSI50/* No CSI structure available */
#defineEL2HLT51/* Level 2 halted */
#defineEBADE 52/* Invalid exchange */
#defineEBADR 53/* Invalid request descriptor */
#defineEXFULL54/* Exchange full */
#defineENOANO55/* No anode */
#defineEBADRQC56/* Invalid request code */
#defineEBADSLT57/* Invalid slot */

#defineEDEADLOCKEDEADLK

#defineEBFONT59/* Bad font file format */
#defineENOSTR60/* Device not a stream */
#defineENODATA61/* No data available */
#defineETIME 62/* Timer expired */
#defineENOSR 63/* Out of streams resources */
#defineENONET64/* Machine is not on the network */
#defineENOPKG65/* Package not installed */
#defineEREMOTE66/* Object is remote */
#defineENOLINK67/* Link has been severed */
#defineEADV 68/* Advertise error */
#defineESRMNT69/* Srmount error */
#defineECOMM 70/* Communication error on send */
#defineEPROTO71/* Protocol error */
#defineEMULTIHOP72/* Multihop attempted */
#defineEDOTDOT73/* RFS specific error */
#defineEBADMSG74/* Not a data message */
#defineEOVERFLOW75/* Value too large for defined data type */
#defineENOTUNIQ76/* Name not unique on network */
#defineEBADFD77/* File descriptor in bad state */
#defineEREMCHG78/* Remote address changed */
#defineELIBACC79/* Can not access a needed shared library */
#defineELIBBAD80/* Accessing a corrupted shared library */
#defineELIBSCN81/* .lib section in a.out corrupted */
#defineELIBMAX82/* Attempting to link in too many shared libraries */
#defineELIBEXEC83/* Cannot exec a shared library directly */
#defineEILSEQ84/* Illegal byte sequence */
#defineERESTART85/* Interrupted system call should be restarted */
#defineESTRPIPE86/* Streams pipe error */
#defineEUSERS87/* Too many users */
#defineENOTSOCK88/* Socket operation on non-socket */
#defineEDESTADDRREQ89/* Destination address required */
#defineEMSGSIZE90/* Message too long */
#defineEPROTOTYPE91/* Protocol wrong type for socket */
#defineENOPROTOOPT92/* Protocol not available */
#defineEPROTONOSUPPORT93/* Protocol not supported */
#defineESOCKTNOSUPPORT94/* Socket type not supported */
#defineEOPNOTSUPP95/* Operation not supported on transport endpoint */
#defineEPFNOSUPPORT96/* Protocol family not supported */
#defineEAFNOSUPPORT97/* Address family not supported by protocol */
#defineEADDRINUSE98/* Address already in use */
#defineEADDRNOTAVAIL99/* Cannot assign requested address */
#defineENETDOWN100/* Network is down */
#defineENETUNREACH101/* Network is unreachable */
#defineENETRESET102/* Network dropped connection because of reset */
#defineECONNABORTED103/* Software caused connection abort */
#defineECONNRESET104/* Connection reset by peer */
#defineENOBUFS105/* No buffer space available */
#defineEISCONN106/* Transport endpoint is already connected */
#defineENOTCONN107/* Transport endpoint is not connected */
#defineESHUTDOWN108/* Cannot send after transport endpoint shutdown */
#defineETOOMANYREFS109/* Too many references: cannot splice */
#defineETIMEDOUT110/* Connection timed out */
#defineECONNREFUSED111/* Connection refused */
#defineEHOSTDOWN112/* Host is down */
#defineEHOSTUNREACH113/* No route to host */
#defineEALREADY114/* Operation already in progress */
#defineEINPROGRESS115/* Operation now in progress */
#defineESTALE116/* Stale NFS file handle */
#defineEUCLEAN117/* Structure needs cleaning */
#defineENOTNAM118/* Not a XENIX named type file */
#defineENAVAIL119/* No XENIX semaphores available */
#defineEISNAM120/* Is a named type file */
#defineEREMOTEIO121/* Remote I/O error */
#defineEDQUOT122/* Quota exceeded */

#defineENOMEDIUM123/* No medium found */
#defineEMEDIUMTYPE124/* Wrong medium type */
#defineECANCELED125/* Operation Canceled */
#defineENOKEY126/* Required key not available */
#defineEKEYEXPIRED127/* Key has expired */
#defineEKEYREVOKED128/* Key has been revoked */
#defineEKEYREJECTED129/* Key was rejected by service */

/* for robust mutexes */
#defineEOWNERDEAD130/* Owner died */
#defineENOTRECOVERABLE131/* State not recoverable */

#define ERFKILL132/* Operation not possible due to RF-kill */

#endif

 

转载请注明来源:Cofface Blog » Linux errno 错误对照表

赞 (3) 打赏

感谢您的支持,我会继续努力的!

支付宝扫一扫打赏

微信扫一扫打赏