Linux errno error codes

When a system call fails on Linux it returns -1 and sets errno to a small number with a symbolic name such as ENOENT (2, no such file or directory) or EACCES (13, permission denied). Programs print these as “Permission denied” or as the raw name in logs and stack traces.

The numbers below come from the kernel's asm-generic errno headers used on x86 and ARM. Each page shows how to find the exact call that failed with strace, perror and dmesg.

132 codes · showing 1–100 · most-searched codes first

EPERM (errno 1)LINUXerrno 1Operation not permitted ENOENT (errno 2)LINUXerrno 2No such file or directory EIO (errno 5)LINUXerrno 5I/O error EAGAIN (errno 11)LINUXerrno 11Try again ENOMEM (errno 12)LINUXerrno 12Out of memory EACCES (errno 13)LINUXerrno 13Permission denied EBUSY (errno 16)LINUXerrno 16Device or resource busy EMFILE (errno 24)LINUXerrno 24Too many open files ENOSPC (errno 28)LINUXerrno 28No space left on device EROFS (errno 30)LINUXerrno 30Read-only file system EPIPE (errno 32)LINUXerrno 32Broken pipe EADDRINUSE (errno 98)LINUXerrno 98Address already in use ECONNRESET (errno 104)LINUXerrno 104Connection reset by peer ETIMEDOUT (errno 110)LINUXerrno 110Connection timed out ECONNREFUSED (errno 111)LINUXerrno 111Connection refused EHOSTUNREACH (errno 113)LINUXerrno 113No route to host ESRCH (errno 3)LINUXerrno 3No such process EINTR (errno 4)LINUXerrno 4Interrupted system call ENXIO (errno 6)LINUXerrno 6No such device or address E2BIG (errno 7)LINUXerrno 7Argument list too long ENOEXEC (errno 8)LINUXerrno 8Exec format error EBADF (errno 9)LINUXerrno 9Bad file number ECHILD (errno 10)LINUXerrno 10No child processes EFAULT (errno 14)LINUXerrno 14Bad address ENOTBLK (errno 15)LINUXerrno 15Block device required EEXIST (errno 17)LINUXerrno 17File exists EXDEV (errno 18)LINUXerrno 18Cross-device link ENODEV (errno 19)LINUXerrno 19No such device ENOTDIR (errno 20)LINUXerrno 20Not a directory EISDIR (errno 21)LINUXerrno 21Is a directory EINVAL (errno 22)LINUXerrno 22Invalid argument ENFILE (errno 23)LINUXerrno 23File table overflow ENOTTY (errno 25)LINUXerrno 25Not a typewriter ETXTBSY (errno 26)LINUXerrno 26Text file busy EFBIG (errno 27)LINUXerrno 27File too large ESPIPE (errno 29)LINUXerrno 29Illegal seek EMLINK (errno 31)LINUXerrno 31Too many links EDOM (errno 33)LINUXerrno 33Math argument out of domain of func ERANGE (errno 34)LINUXerrno 34Math result not representable EDEADLK (errno 35)LINUXerrno 35Resource deadlock would occur ENAMETOOLONG (errno 36)LINUXerrno 36File name too long ENOLCK (errno 37)LINUXerrno 37No record locks available ENOSYS (errno 38)LINUXerrno 38Invalid system call number ENOTEMPTY (errno 39)LINUXerrno 39Directory not empty ELOOP (errno 40)LINUXerrno 40Too many symbolic links encountered ENOMSG (errno 42)LINUXerrno 42No message of desired type EIDRM (errno 43)LINUXerrno 43Identifier removed ECHRNG (errno 44)LINUXerrno 44Channel number out of range EL2NSYNC (errno 45)LINUXerrno 45Level 2 not synchronized EL3HLT (errno 46)LINUXerrno 46Level 3 halted EL3RST (errno 47)LINUXerrno 47Level 3 reset ELNRNG (errno 48)LINUXerrno 48Link number out of range EUNATCH (errno 49)LINUXerrno 49Protocol driver not attached ENOCSI (errno 50)LINUXerrno 50No CSI structure available EL2HLT (errno 51)LINUXerrno 51Level 2 halted EBADE (errno 52)LINUXerrno 52Invalid exchange EBADR (errno 53)LINUXerrno 53Invalid request descriptor EXFULL (errno 54)LINUXerrno 54Exchange full ENOANO (errno 55)LINUXerrno 55No anode EBADRQC (errno 56)LINUXerrno 56Invalid request code EBADSLT (errno 57)LINUXerrno 57Invalid slot EBFONT (errno 59)LINUXerrno 59Bad font file format ENOSTR (errno 60)LINUXerrno 60Device not a stream ENODATA (errno 61)LINUXerrno 61No data available ETIME (errno 62)LINUXerrno 62Timer expired ENOSR (errno 63)LINUXerrno 63Out of streams resources ENONET (errno 64)LINUXerrno 64Machine is not on the network ENOPKG (errno 65)LINUXerrno 65Package not installed EREMOTE (errno 66)LINUXerrno 66Object is remote ENOLINK (errno 67)LINUXerrno 67Link has been severed EADV (errno 68)LINUXerrno 68Advertise error ESRMNT (errno 69)LINUXerrno 69Srmount error ECOMM (errno 70)LINUXerrno 70Communication error on send EPROTO (errno 71)LINUXerrno 71Protocol error EMULTIHOP (errno 72)LINUXerrno 72Multihop attempted EDOTDOT (errno 73)LINUXerrno 73RFS specific error EBADMSG (errno 74)LINUXerrno 74Not a data message EOVERFLOW (errno 75)LINUXerrno 75Value too large for defined data type ENOTUNIQ (errno 76)LINUXerrno 76Name not unique on network EBADFD (errno 77)LINUXerrno 77File descriptor in bad state EREMCHG (errno 78)LINUXerrno 78Remote address changed ELIBACC (errno 79)LINUXerrno 79Can not access a needed shared library ELIBBAD (errno 80)LINUXerrno 80Accessing a corrupted shared library ELIBSCN (errno 81)LINUXerrno 81.lib section in a.out corrupted ELIBMAX (errno 82)LINUXerrno 82Attempting to link in too many shared libraries ELIBEXEC (errno 83)LINUXerrno 83Cannot exec a shared library directly EILSEQ (errno 84)LINUXerrno 84Illegal byte sequence ERESTART (errno 85)LINUXerrno 85Interrupted system call should be restarted ESTRPIPE (errno 86)LINUXerrno 86Streams pipe error EUSERS (errno 87)LINUXerrno 87Too many users ENOTSOCK (errno 88)LINUXerrno 88Socket operation on non-socket EDESTADDRREQ (errno 89)LINUXerrno 89Destination address required EMSGSIZE (errno 90)LINUXerrno 90Message too long EPROTOTYPE (errno 91)LINUXerrno 91Protocol wrong type for socket ENOPROTOOPT (errno 92)LINUXerrno 92Protocol not available EPROTONOSUPPORT (errno 93)LINUXerrno 93Protocol not supported ESOCKTNOSUPPORT (errno 94)LINUXerrno 94Socket type not supported EOPNOTSUPP (errno 95)LINUXerrno 95Operation not supported on transport endpoint EPFNOSUPPORT (errno 96)LINUXerrno 96Protocol family not supported EAFNOSUPPORT (errno 97)LINUXerrno 97Address family not supported by protocol