Provided by: manpages-fr-dev_3.65d1p1-1_all 

NOM
strerror, strerror_r, strerror_l - 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 */
char *strerror_l(int errnum, locale_t locale);
Exigences de macros de test de fonctionnalités pour la glibc (consultez feature_test_macros(7)) :
strerror_r():
La version compatible XSI est fournie si :
(_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && ! _GNU_SOURCE
Autrement, c'est la version GNU qui est fournie.
DESCRIPTION
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 (par exemple, si errnum est EINVAL, la description renvoyée sera « Argument
invalide »). Cette chaîne ne doit pas être modifiée par l'application, mais peut être écrasée par un
appel ultérieur à strerror() ou strerror_l(). Aucune autre fonction de bibliothèque, y compris perror(3),
ne modifie cette chaîne.
strerror_r()
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, mais non compatible POSIX avant la glibc 2.13) 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, sinon 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 qu'errnum est inconnu). La chaîne inclut toujours l'octet nul final (« \0 »).
strerror_l()
strerror_l() est semblable à strerror(), mais fait correspondre à errnum un message d'erreur adapté à la
localisation précisée par locale. Le comportement de strerror_l() n'est pas défini la la localisation
locale est l'objet de localisation spécial LC_GLOBAL_LOCALE ou si elle n'a pas la valeur d'une
localisation valide.
VALEUR RENVOYÉE
Les fonction strerror(), strerror_l() 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. En cas d'erreur, un numéro (positif)
d'erreur est renvoyé (depuis la glibc 2.13), ou -1 est renvoyé et errno est définit pour indiquer
l'erreur (pour les version de la glibc antérieures à 2.13).
POSIX.1-2001 et POSIX.1-2008 exigent qu'un appel réussi de strerror() ou strerror_l() laisse errno non
modifié. Remarquez que, puisqu'aucune valeur de retour de fonction n'est réservée pour indiquer d'erreur,
une application qui désire vérifier les erreurs devrait initialiser errno à zéro avant l'appel, et
vérifier errno après l'appel.
ERREURS
EINVAL La valeur de errnum n'est pas un code d'erreur valide.
ERANGE Le tampon fourni n'est pas assez grand.
ATTRIBUTS
Multithreading (voir pthreads(7)) La fonction strerror() n'est pas sûre dans un contexte multithread. La fonction strerror_r() est sûre dans un contexte multithread.
VERSIONS
La fonction strerror_l() est apparue dans la glibc 2.6.
CONFORMITÉ
strerror() est spécifiée par POSIX.1-2001, POSIX.1-2008, C89 et C99. strerror_r() est spécifiée par
POSIX.1-2001 et POSIX.1-2008.
strerror_l() est spécifiée dans POSIX.1-2008.
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. C99 et POSIX.1-2008 exigent que la valeur renvoyée ne soit pas NULL.
VOIR AUSSI
err(3), errno(3), error(3), perror(3), strsignal(3), locale(7)
COLOPHON
Cette page fait partie de la publication 3.65 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
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par
l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.
Christophe Blaess <http://www.blaess.fr/christophe/> (1996-2003), Alain Portal
<http://manpagesfr.free.fr/> (2003-2006). Nicolas François et l'équipe francophone de traduction de
Debian (2006-2009).
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> ».
18 mars 2014 STRERROR(3)