<errno.h> est l'en-tête de la bibliothèque standard du C, du langage C, qui contient les définitions des macros et des constantes utilisées pour signaler une erreur, ou vérifier s'il y en a une qui s'est produite. Cela se fait à travers des codes d'erreur enregistré dans une variable statique appelé errno
(forme raccourcie de error number)[1].
Une valeur (le code d'erreur) est enregistrée dans errno
par quelques fonctions lorsque celles-ci détectent une erreur. Au démarrage du programme, cette variable contient la valeur zéro. Les fonctions des bibliothèques standard n'y stockent que des valeurs positives. N'importe quelle fonction peut en modifier la valeur au cours de son exécution, si un problème a eu lieu.
Traditionnellement, errno utilisait un emplacement mémoire statique, mais des macros sont presque toujours utilisées de nos jours pour permettre l'usage de multiples threads ; ainsi, chaque thread peut voir ses propres codes d'erreur.
Ce fichier définit également des constantes qui représentent des codes d'erreurs couramment utilisés. La bibliothèque standard du C requiert seulement les trois suivantes :
sqrt(-1)
.strtol("0xfffffffff",NULL,0)
sur un système avec des long
de 32 bits.mbstowcs(buf,"\xff", 1)
sur un système basé sur UTF-8.Des systèmes d'exploitation compatibles POSIX comme Linux, Solaris ou AIX incluent plusieurs autres codes d'erreurs, souvent bien plus utilisés que ceux ci-dessus, comme EACCES qui indique un problème d'ouverture d'un fichier[3].
errno.h
system error numbers – Base Definitions Reference, The Single UNIX® Specification, Issue 7 from The Open Group