Codici d'errore errno di Linux

Quando una chiamata di sistema fallisce su Linux restituisce -1 e imposta errno su un piccolo numero con un nome simbolico, come ENOENT (2, file o directory inesistente) o EACCES (13, permesso negato). I programmi li mostrano come “Permission denied” o come nome grezzo nei log e negli stack trace.

I numeri qui sotto provengono dagli header errno asm-generic del kernel, usati su x86 e ARM. Ogni pagina mostra come individuare con strace, perror e dmesg la chiamata esatta che è fallita.

16 guide passo passo

EPERM (errno 1)LINUXerrno 1EPERM, «Operation not permitted» (errno 1), significa che il kernel ha rifiutato un'operazione che richiede… ENOENT (errno 2)LINUXerrno 2ENOENT, «No such file or directory» (errno 2), significa che un percorso usato dal programma non esiste. EIO (errno 5)LINUXerrno 5EIO, «Input/output error» (errno 5), significa che una lettura o scrittura di basso livello è fallita a… EAGAIN (errno 11)LINUXerrno 11EAGAIN, «Resource temporarily unavailable» (errno 11 su Linux, stesso valore di EWOULDBLOCK), significa che… ENOMEM (errno 12)LINUXerrno 12ENOMEM, «Cannot allocate memory» (errno 12), significa che il kernel non è riuscito a fornire la memoria… EACCES (errno 13)LINUXerrno 13EACCES, «Permission denied» (errno 13), significa che i bit di modalità del file, le ACL o un modulo di… EBUSY (errno 16)LINUXerrno 16EBUSY, «Device or resource busy» (errno 16), significa che la destinazione è in uso e l'operazione non può… EMFILE (errno 24)LINUXerrno 24EMFILE, «Too many open files» (errno 24), significa che un processo ha raggiunto il limite di file… ENOSPC (errno 28)LINUXerrno 28ENOSPC, «No space left on device» (errno 28), significa che una scrittura è fallita perché il filesystem non… EROFS (errno 30)LINUXerrno 30EROFS, «Read-only file system» (errno 30), significa che è stata tentata una scrittura su un filesystem… EPIPE (errno 32)LINUXerrno 32EPIPE, «Broken pipe» (errno 32), significa che un programma ha scritto su una pipe o un socket il cui lato… EADDRINUSE (errno 98)LINUXerrno 98EADDRINUSE, «Address already in use» (errno 98 su Linux, 48 su macOS), significa che un programma ha provato… ECONNRESET (errno 104)LINUXerrno 104ECONNRESET, «Connection reset by peer» (errno 104 su Linux, 54 su macOS), significa che l'altro capo di una… ETIMEDOUT (errno 110)LINUXerrno 110ETIMEDOUT, «Connection timed out» (errno 110 su Linux, 60 su macOS), significa che un'operazione di rete non… ECONNREFUSED (errno 111)LINUXerrno 111ECONNREFUSED, «Connection refused» (errno 111 su Linux, 61 su macOS), significa che l'host di destinazione… EHOSTUNREACH (errno 113)LINUXerrno 113EHOSTUNREACH, «No route to host» (errno 113 su Linux, 65 su macOS), significa che il sistema non è riuscito…