Référence du fichier errno.h

définitions et déclarations relatives aux erreurs Plus de détails...

Macros

#define EDOM
 erreur de domaine
#define ERANGE
 erreur d'intervalle.
#define EILSEQ
 erreur de codage.
#define errno
 code de la dernière erreur.

Description détaillée

Cet entête fournit des macros utilisées pour la gestion des erreurs.


Documentation des macros

#define EDOM

Valeur stockée dans errno pour signaler l'appel d'une fonction avec des arguments hors du domaine valide. C'est une expression constante entière non nulle pouvant être utilisée dans les directives du préprocesseur.

#define EILSEQ

Valeur stockée dans errno pour indiquer une erreur de codage: qu'une suite de bytes ne forme pas un caractère multibyte valide ou qu'une valeur stockée dans un wchar_t n'est pas caractère étendu valide. C'est une expression constante entière non nulle pouvant être utilisée dans les directives du préprocesseur.

Note:
Ajouté en C95.
#define ERANGE

Valeur stockée dans errno pour signaler que le résultat d'une fonction se trouve en dehors de l'intervalle représentable. C'est une expression constante entière non nulle pouvant être utilisée dans les directives du préprocesseur.

#define errno

Lvalue modifiable de type int contenant le code de la dernière erreur détectée. La description permet une définition comme *__errno(), ce qui peut être utile par exemple dans une implémentation fournissant des threads et ayant un code d'erreur par thread -- les implémentations conformes à POSIX sont dans ce cas.

La valeur de errno est 0 au début du programme. Aucune fonction de la bibliothèque ne remet errno à 0 par la suite, mais elles peuvent en modifier la valeur sans pourtant qu'il y ait une erreur.

Pour les fonctions qui retournent une valeur singulière pour signaler qu'elles ont échoué, il ne faut donc tenir compte de la valeur de errno qu'après avoir constaté que la fonction a échoué.

Certaines fonctions mathématiques n'ont pas d'autres indications d'échec que errno; dans cas il faut mettre errno à 0 avant d'exécuter la fonction et ensuite vérifier si errno est toujours nul.

Il est courant et conforme pour les implémentations d'étendre les valeurs possibles de errno et d'utiliser ce mécanisme non seulement en cas d'erreur dans des fonctions non définies par la norme mais aussi pour permettre de discerner la cause de l'échec de fonctions que la norme n'indique pas utiliser errno (en cas d'échec, les fonctions que la norme indique utiliser errno doivent placer dans errno une des valeurs données dans leur description). Par exemple fopen() retourne NULL en cas d'échec, mais aucune information n'est donnée sur la nature du problème ayant empéché l'ouverture; POSIX demande que fopen() assigne une valeur décrivant le problème à errno.

Note:

Voir aussi les fonctions strerror() et perror().


Copyright © 2008 -- 2009 Jean-Marc Bourguet Accueil Pages sur le C