errno description (error codes) in Linux

errno description (error codes) in Linux

Linux errno description

errno – number of last error. If your program exits with  non-zero exit code, it means it exited with error.

If you know the error code that is good. If you don’t know the error code then it is tough to debug. Following are the errno of Linux system calls. These will help you to debug the program.

 

DESCRIPTION from man  Page
The <errno.h> header file defines the integer variable errno, which is set by system calls and some library func‐
tions in the event of an error to indicate what went wrong. Its value is significant only when the return value of
the call indicated an error (i.e., -1 from most system calls; -1 or NULL from most library functions); a function
that succeeds is allowed to change errno.

Valid error numbers are all nonzero; errno is never set to zero by any system call or library function.

For some system calls and library functions (e.g., getpriority(2)), -1 is a valid return on success. In such cases,
a successful return can be distinguished from an error return by setting errno to zero before the call, and then, if
the call returns a status that indicates that an error may have occurred, checking to see if errno has a nonzero
value.

errno is defined by the ISO C standard to be a modifiable lvalue of type int, and must not be explicitly declared;
errno may be a macro. errno is thread-local; setting it in one thread does not affect its value in any other
thread.

 

ERRNO Macro errno errno description
EDEADLK 35 /* Resource deadlock would occur */
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 links encountered */
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 /* Level 2 not synchronized */
EL3HLT 46 /* Level 3 halted */
EL3RST 47 /* Level 3 reset */
ELNRNG 48 /* Link number out of range */
EUNATCH 49 /* Protocol driver not attached */
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 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 the network */
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 /* Value too large for defined data type */
ENOTUNIQ 76 /* Name not unique on network */
EBADFD 77 /* File descriptor in bad state */
EREMCHG 78 /* Remote address changed */
ELIBACC 79 /* Can not access a needed shared library */
ELIBBAD 80 /* Accessing a corrupted shared library */
ELIBSCN 81 /* .lib section in a.out corrupted */
ELIBMAX 82 /* Attempting to link in too many shared libraries */
ELIBEXEC 83 /* Cannot exec 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 /* Socket operation 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 is already 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 /* Host is down */
EHOSTUNREACH 113 /* No route to host */
EALREADY 114 /* Operation already in progress */
EINPROGRESS 115 /* Operation now in progress */
ESTALE 116 /* Stale file handle */
EUCLEAN 117 /* Structure needs cleaning */
ENOTNAM 118 /* Not a XENIX named type file */
ENAVAIL 119 /* No XENIX semaphores available */
EISNAM 120 /* Is a named type file */
EREMOTEIO 121 /* Remote I/O error */
EDQUOT 122 /* Quota exceeded */
ENOMEDIUM 123 /* No medium found */
EMEDIUMTYPE 124 /* Wrong medium type */
ECANCELED 125 /* Operation Canceled */
ENOKEY 126 /* Required key not available */
EKEYEXPIRED 127 /* Key has expired */
EKEYREVOKED 128 /* Key has been revoked */
EKEYREJECTED 129 /* Key was rejected by service */
/* for robust mutexes */
EOWNERDEAD 130 /* Owner died */
ENOTRECOVERABLE 131 /* State not recoverable */
 ERFKILL 132 /* Operation not possible due to RF-kill */
EHWPOISON 133 /* Memory page has hardware error */

 

Leave a Reply

Your email address will not be published. Required fields are marked *