Codes d'erreur errno de Linux

Lorsqu'un appel système échoue sous Linux, il renvoie -1 et place dans errno un petit nombre doté d'un nom symbolique, comme ENOENT (2, fichier ou dossier inexistant) ou EACCES (13, permission refusée). Les programmes affichent ces erreurs sous la forme « Permission denied » ou sous leur nom brut dans les journaux et les traces de pile.

Les numéros ci-dessous proviennent des en-têtes errno asm-generic du noyau, utilisés sur x86 et ARM. Chaque page montre comment retrouver l'appel exact qui a échoué avec strace, perror et dmesg.

16 guides pas à pas

EPERM (errno 1)LINUXerrno 1EPERM, « Operation not permitted » (errno 1), signifie que le noyau a refusé une opération nécessitant des… ENOENT (errno 2)LINUXerrno 2ENOENT, « No such file or directory » (errno 2), signifie qu’un chemin utilisé par le programme n’existe pas. EIO (errno 5)LINUXerrno 5EIO, « Input/output error » (errno 5), signifie qu’une lecture ou une écriture de bas niveau a échoué au… EAGAIN (errno 11)LINUXerrno 11EAGAIN, « Resource temporarily unavailable » (errno 11 sous Linux, même valeur que EWOULDBLOCK), signifie… ENOMEM (errno 12)LINUXerrno 12ENOMEM, « Cannot allocate memory » (errno 12), signifie que le noyau n’a pas pu fournir la mémoire demandée. EACCES (errno 13)LINUXerrno 13EACCES, « Permission denied » (errno 13), signifie que les bits de mode du fichier, les ACL ou un module de… EBUSY (errno 16)LINUXerrno 16EBUSY, « Device or resource busy » (errno 16), signifie que la cible est en cours d’utilisation et que… EMFILE (errno 24)LINUXerrno 24EMFILE, « Too many open files » (errno 24), signifie qu’un processus a atteint sa limite de descripteurs de… ENOSPC (errno 28)LINUXerrno 28ENOSPC, « No space left on device » (errno 28), signifie qu’une écriture a échoué faute de place sur le… EROFS (errno 30)LINUXerrno 30EROFS, « Read-only file system » (errno 30), signifie qu’une écriture a été tentée sur un système de… EPIPE (errno 32)LINUXerrno 32EPIPE, « Broken pipe » (errno 32), signifie qu’un programme a écrit dans un tube ou un socket dont… EADDRINUSE (errno 98)LINUXerrno 98EADDRINUSE, « Address already in use » (errno 98 sous Linux, 48 sous macOS), signifie qu’un programme a… ECONNRESET (errno 104)LINUXerrno 104ECONNRESET, « Connection reset by peer » (errno 104 sous Linux, 54 sous macOS), signifie que l’autre… ETIMEDOUT (errno 110)LINUXerrno 110ETIMEDOUT, « Connection timed out » (errno 110 sous Linux, 60 sous macOS), signifie qu’une opération réseau… ECONNREFUSED (errno 111)LINUXerrno 111ECONNREFUSED, « Connection refused » (errno 111 sous Linux, 61 sous macOS), signifie que l’hôte cible a… EHOSTUNREACH (errno 113)LINUXerrno 113EHOSTUNREACH, « No route to host » (errno 113 sous Linux, 65 sous macOS), signifie que le système n’a pas pu…