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

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)