Fonctions de base en langage C/errno.h
Des informations sur la gestion des erreurs dans le wikilivre Programmation C, chapitre sur les erreurs.
Le fichier d'entête errno.h définit le mécanisme qui permet de savoir si une fonction système ou une fonction de la bibliothèque standard a rencontré une erreur. Elle écrit alors une valeur entière dans errno.
Remarques sur l’utilisation de errno[modifier | modifier le wikicode]
- une fonction qui s'exécute avec succès ne remet pas à 0 errno, vous devez vous en charger avant de l'appeler.
- errno peut ne pas être une variable : ne pas utiliser son adresse.
- Vous devez stocker ou exploiter au plus tôt errno juste après l'appel de la fonction. Tout appel à une fonction autre que perror risque d'écraser errno.
- Ne pas utiliser le mécanisme errno dans vos propres fonctions.
Constantes symboliques[modifier | modifier le wikicode]
errno.h contient la définition de constantes symboliques qui représentent les codes d'erreur de errno.
Ces constantes peuvent être spécifiques à un système. Il faut étudier errno.h sur la machine cible pour assurer la portabilité des programmes.
Fonctions utiles[modifier | modifier le wikicode]
- void perror(char *s) : Affiche le message d'erreur correspondant à errno sur stderr.
- char *strerror(int n) : Renvoie le message d'erreur correspondant à n.
Un extrait de code qui analyse le résultat de la fonction système stat en cas de problème :
cr = stat(nomFichier, &buf);
if (cr != 0)
{
perror("stat");
exit(EXIT_FAILURE);
}