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 (consultez
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.
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(). Aucune
autre fonction de bibliothèque, y compris
perror(3), 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,
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.
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.
POSIX.1-2001 et POSIX.1-2008 exigent qu'un appel réussi de
strerror(3) 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.
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).
ERREURS¶
- EINVAL
- La valeur de errnum n'est pas un code d'erreur
valide.
- ERANGE
- Le tampon fourni n'est pas assez grand.
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. 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)
COLOPHON¶
Cette page fait partie de la publication 3.44 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> ».