Aller au contenu

errno.h

Un article de Wikipédia, l'encyclopédie libre.

<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 :

EDOM
Lorsqu'un paramètre donné est hors du domaine de définition de la fonction, par exemple sqrt(-1).
ERANGE
Résultat d'une fonction hors de son domaine de définition, par exemple strtol("0xfffffffff",NULL,0) sur un système avec des long de 32 bits.
EILSEQ (Requis depuis l'amendement 1 de 1994 au standard C89)[2]
Résultat d'une séquence de bytes non autorisée, par exemple 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].

Notes et références

[modifier | modifier le code]
  1. International Standard for Programming Language C (C99), ISO/IEC 9899:1999, p. 186
  2. "A brief description of Normative Addendum 1".
  3. errno.h system error numbers – Base Definitions Reference, The Single UNIX® Specification, Issue 7 from The Open Group

Bibliographie

[modifier | modifier le code]

Articles connexes

[modifier | modifier le code]

Liens externes

[modifier | modifier le code]