NOM
strerror, strerror_r - Obtenir le libellé d’un numéro d’erreur
SYNOPSIS
#include <string.h>
char *strerror(int errnum);
int strerror_r(int errnum, char *buf, size_t buflen);
/* conforme XSI */
char *strerror_r(int errnum, char *buf, size_t buflen);
/* spécifique GNU */
Exigences de macros de test de fonctionnalités pour la glibc (voir
feature_test_macros(7)) :
La version compatible XSI de strerror_r() est fournie si :
(_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && !_GNU_SOURCE
Autrement, c’est la version GNU qui est fournie.
La fonction strerror() renvoie un pointeur vers une chaîne qui décrit
le code d’erreur passé en argument errnum, en utilisant éventuellement
la catégorie LC_MESSAGES de la localisation pour sélectionner la langue
appropriée. Cette chaîne ne doit pas être modifiée par l’application,
mais peut être écrasée par un appel ultérieur à perror(3) ou
strerror(). Aucune autre fonction de bibliothèque ne modifie cette
chaîne.
La fonction strerror_r() est identique à strerror() mais fonctionne
correctement dans un environnement multithread. Cette fonction est
disponible en deux versions : une version conforme XSI spécifiée dans
POSIX.1-2001 (disponible depuis la glibc 2.3.4) et une version
spécifique GNU (disponible depuis la glibc 2.0). La version compatible
XSI est fournie par la macro de test mentionnée dans le SYNOPSIS sino
la version spécifique GNU est fournie. Si aucune macro de test n’est
définie explicitement, alors (depuis la glibc 2.4) _POSIX_SOURCE est
définie par défaut avec la valeur 200112L, de telle sorte que la
version compatible XSI de strerror_r() est fournie par défaut.
La version de strerror_r() conforme XSI est préférée pour les
applications portables. Elle renvoie la chaîne dans le tampon buf de
longueur buflen fourni par l’appelant.
La version de strerror_r() spécifique GNU renvoie un pointeur sur une
chaîne contenant le message d’erreur. Cela peut être soit un pointeur
vers une chaîne que la fonction stocke dans buf, soit un pointeur vers
une chaîne statique (immuable) (auquel cas buf n’est pas utilisé). Si
la fonction stocke une chaîne dans buf, au plus buflen octets sont
stockés (la chaîne peut être tronquée si buflen est trop petit) et la
chaîne inclut toujours l’octet nul de terminaison.
VALEUR RENVOYÉE
La fonction strerror() et la fonction GNU strerror_r() renvoient la
description correspondant au code transmis, ou un message « Unknown
error nnn » si le numéro d’erreur n’existe pas.
La fonction strerror_r() conforme XSI renvoie 0 si elle réussit et -1
si elle échoue et écrit errno pour indiquer l’erreur.
ERREURS
EINVAL La valeur de errnum n’est pas un code d’erreur valide.
ERANGE Le tampon fourni n’est pas assez grand.
CONFORMITÉ
strerror() est spécifiée par POSIX.1-2001, C89 et C99. strerror_r() est
spécifiée par POSIX.1-2001.
La fonction strerror_r() spécifique GNU n’est pas une extension
standard.
POSIX.1-2001 permet à strerror() d’écrire errno si l’appel rencontre
une erreur mais ne spécifie pas quelle valeur devrait être retournée
comme résultat de fonction dans l’éventualité d’une erreur. Sur
certains systèmes, strerror() renvoie NULL si le numéro d’erreur est
inconnu. Sur d’autres, strerror() renvoie une chaîne du style « Error
nnn occurred » et écrit EINVAL dans errno si le numéro d’erreur est
inconnu.
VOIR AUSSI
err(3), errno(3), error(3), perror(3), strsignal(3)
COLOPHON
Cette page fait partie de la publication 3.23 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent être trouvées à l’adresse
http://www.kernel.org/doc/man-pages/.
TRADUCTION
Cette page de manuel a été traduite et mise à jour par Christophe
Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et mise à
disposition sur http://manpagesfr.free.fr/.
Les mises à jour et corrections de la version présente dans Debian sont
directement gérées par Nicolas François
<nicolas.francois@centraliens.net> et l’équipe francophone de
traduction de Debian.
Veuillez signaler toute erreur de traduction en écrivant à
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir accès à la version anglaise de ce document
en utilisant la commande « man -L C <section> <page_de_man> ».
30 mars 2009