PERROR(3)

NOM
perror - Afficher un message d'erreur système

SYNOPSIS
#include <stdio.h>

void perror(const char *s);

#include <errno.h>

const char *sys_errlist[];
int sys_nerr;
int errno;

Exigences de macros de test de fonctionnalités pour la glibc (voir feature_test_macros(7)) :

sys_errlist, sys_nerr: _BSD_SOURCE

DESCRIPTION
La fonction perror() affiche un message sur la sortie d'erreur standard, décrivant la dernière erreur rencontrée durant un appel système ou une fonction de bibliothèque. D'abord, (si s n'est pas NULL et si *s n'est pas un octet nul), la chaîne de caractère s est imprimée, suivie d'un deux points (« : ») ou d'un blanc, puis le message, suivi d'un saut de ligne. La chaîne de caractères contient généralement le nom de la fonction où s'est produit l'erreur. Le numéro d'erreur est obtenu à partir de la variable externe errno, qui contient le code d'erreur lorsqu'un problème survient, mais qui s'est pas effacée lorsqu'un appel est réussi. La liste globale d'erreurs sys_errlist[] indexée par errno peut être utilisée pour obtenir le message d'erreur sans le saut de ligne. Le plus grand numéro de message contenu dans cette table est sys_nerr - 1. Soyez prudents lors des accès directs dans cette liste, car de nouvelles erreurs n'ont peut-être pas de message dans sys_errlist[]. Quand un appel système échoue, il renvoie habituellement -1, et place le code d'erreur dans errno. (Les codes sont décrits dans <errno.h>.) Beaucoup de fonctions de bibliothèque se comportent également ainsi. La fonction perror() permet de traduire les codes d'erreur en une forme intelligible. Notez que errno est indéfinie après un appel de fonction de bibliothèque réussi. Cette fonction peut modifier errno même si elle réussit, ne serait-ce que par des appels système internes qui peuvent échouer. Ainsi, si un appel qui échoue n'est pas immédiatement suivi par perror(), la valeur de errno doit être sauvegardée.

CONFORMITÉ
La fonction perror() et la variable externe errno (voir errno(3)) sont conformes à C89, C99, BSD 4.3 et POSIX.1-2001. Les variables externes sys_nerr et sys_errlist sont conformes à BSD.

NOTES
Les variables externes sys_nerr et sys_errlist sont définies par la glibc, mais dans <stdio.h>.

VOIR AUSSI
err(3), errno(3), error(3), strerror(3)

TRADUCTION

Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 5 novembre 1996 et révisée le 17 juillet 2008.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 3 perror ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.