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)