Provided by: manpages-fr-dev_4.15.0-9_all bug

NOM

       strerror,  strerrorname_np,  strerrordesc_np,  strerror_r, strerror_l - Obtenir le libellé
       d'un numéro d'erreur

SYNOPSIS

       #include <string.h>

       char *strerror(int errnum);
       const char *strerrorname_np(int errnum);
       const char *strerrordesc_np(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    (consulter
   feature_test_macros(7)) :

       strerrorname_np(), strerrordesc_np() :
           _GNU_SOURCE

       strerror_r() :
           La version conforme à XSI est fournie si :
               (_POSIX_C_SOURCE >= 200112L) && ! _GNU_SOURCE
           Sinon la version spécifique à GNU 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  non  valable »).  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.

       Comme  strerror(),  la  fonction strerrordesc_np() renvoie un pointeur vers une chaîne qui
       décrit le code d’erreur passé dans l’argument errnum, avec comme différence que la  chaîne
       renvoyée n’est pas traduite selon la régionalisation en cours.

       La fonction strerrorname_np() renvoie un pointeur vers une chaîne contenant le nom du code
       d’erreur passé dans l’argument errnum. Par exemple, si EPERM  est  donné  comme  argument,
       cette fonction renvoie un pointeur vers la chaîne « EPERM ».

   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 le paramétrage de 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_C_SOURCE est
       définie par défaut avec la valeur 200112L, de telle sorte que la version compatible XSI de
       strerror_r() soit 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 d’erreur 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 NULL 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  si  la  localisation  locale  est  l'objet  spécial  de  localisation
       LC_GLOBAL_LOCALE ou si elle n'a pas une valeur valable de localisation.

VALEUR RENVOYÉE

       Les fonctions strerror(), strerror_l()  et  la  fonction  GNU  strerror_r()  renvoient  la
       description  correspondante  au  code  transmis, ou un message « Unknown error nnn » si le
       numéro d'erreur est inconnu.

       En  cas  de  succès,  strerrorname_np()  et  strerrordesc_np()  renvoient  la  description
       correspondante  au  code  transmis.  Si  errnum  est un numéro d'erreur non valable, elles
       renvoient NULL.

       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éfini pour indiquer l'erreur (pour les versions 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 une 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 valable.

       ERANGE Le tampon fourni n'est pas assez grand pour la chaîne de description d’erreur.

VERSIONS

       La fonction strerror_l() est apparue dans la glibc 2.6.

       Les  fonctions  strerrorname_np() et strerrordesc_np() sont apparues pour la première fois
       dans la version 2.32 de la glibc.

ATTRIBUTS

       Pour une explication des termes utilisés dans cette section, consulter attributes(7).

       ┌───────────────────┬──────────────────────┬──────────────────────────────────────────────┐
       │InterfaceAttributValeur                                       │
       ├───────────────────┼──────────────────────┼──────────────────────────────────────────────┤
       │strerror()         │ Sécurité des threads │ MT-Unsafe race:strerror                      │
       ├───────────────────┼──────────────────────┼──────────────────────────────────────────────┤
       │strerrorname_np(), │ Sécurité des threads │ MT-Safe                                      │
       │strerrordesc_np()  │                      │                                              │
       ├───────────────────┼──────────────────────┼──────────────────────────────────────────────┤
       │strerror_r(),      │ Sécurité des threads │ MT-Safe                                      │
       │strerror_l()       │                      │                                              │
       └───────────────────┴──────────────────────┴──────────────────────────────────────────────┘

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.

       Les  fonctions strerror_r(), strerrorname_np() et strerrordesc_np() spécifiques à GNU sont
       des extensions non standard.

       POSIX.1-2001 permet à strerror() d'écrire errno si l'appel rencontre une  erreur  mais  ne
       spécifie  pas  quelle  valeur  devrait  être  renvoyé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.

NOTES

       La  bibliothèque  GNU  C utilise un tampon de 1024 octets pour strerror(). Cette taille de
       tampon devrait donc être suffisante pour éviter  une  erreur  ERANGE  lors  d'un  appel  à
       strerror_r().

       strerrorname_np() et strerrordesc_np() sont thread-safe et async-signal-safe.

VOIR AUSSI

       err(3), errno(3), error(3), perror(3), strsignal(3), locale(7)

COLOPHON

       Cette  page  fait partie de la publication 5.13 du projet man-pages Linux. Une description
       du projet et des instructions pour signaler des anomalies et la dernière version de  cette
       page peuvent être trouvées à l'adresse https://www.kernel.org/doc/man-pages/.

TRADUCTION

       La  traduction  française  de  cette  page  de  manuel  a  été créée par Christophe Blaess
       <https://www.blaess.fr/christophe/>, Stéphan  Rafin  <stephan.rafin@laposte.net>,  Thierry
       Vignaud  <tvignaud@mandriva.com>,  François Micaux, Alain Portal <aportal@univ-montp2.fr>,
       Jean-Philippe   Guérard   <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)    <jean-
       luc.coulon@wanadoo.fr>,    Julien    Cristau    <jcristau@debian.org>,    Thomas   Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin
       Duneau  <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis
       Barbier  <barbier@debian.org>,  David  Prévot  <david@tilapin.org>  et  Frédéric  Hantrais
       <fhantrais@gmail.com>

       Cette  traduction  est  une  documentation libre ; veuillez vous reporter à la GNU General
       Public  License  version 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩   concernant   les
       conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un
       message à ⟨debian-l10n-french@lists.debian.org⟩.

                                           22 mars 2021                               STRERROR(3)