dwww Home | Manual pages | Find package

strerror(3)                Library Functions Manual                strerror(3)

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

BIBLIOTHÈQUE
       Bibliothèque C standard (libc, -lc)

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[.buflen], size_t buflen);
                      /* XSI-compliant */

       char *strerror_r(int errnum, char buf[.buflen], size_t buflen);
                      /* GNU-specific */

       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 err-
       num, 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 dis-
       ponible en deux versions : une version conforme XSI spécifiée dans  PO-
       SIX.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 expli-
       citement, 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  applica-
       tions  portables. Elle renvoie la chaîne d’erreur dans le tampon buf de
       longueur buflen fourni par l'appelant.

       The GNU-specific strerror_r()  returns a pointer to a string containing
       the  error  message.  This may be either a pointer to a string that the
       function stores in buf, or a pointer to some (immutable) static  string
       (in  which case buf is unused). If the function stores a string in buf,
       then at most buflen bytes are stored (the string may  be  truncated  if
       buflen  is too small and errnum is unknown). The string always includes
       a terminating null byte ('\0').

   strerror_l()
       strerror_l() est semblable à strerror(), mais fait correspondre à  err-
       num  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 lo-
       cale  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.

       The XSI-compliant strerror_r()  function returns 0 on success.  On  er-
       ror, a (positive) error number is returned (since glibc 2.13), or -1 is
       returned and errno is set to indicate the error (before glibc 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  des-
              cription 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()       │                      │                           │
       └───────────────────┴──────────────────────┴───────────────────────────┘

STANDARDS
       strerror()  is specified by POSIX.1-2001, POSIX.1-2008, and C99. strer-
       ror_r()  is specified by POSIX.1-2001 and 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 cer-
       tains systèmes, strerror() renvoie NULL si le numéro d'erreur  est  in-
       connu. 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  incon-
       nu.  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 er-
       reur ERANGE lors d'un appel à strerror_r().

       strerrorname_np() et strerrordesc_np() sont  thread-safe  et  async-si-
       gnal-safe.

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

TRADUCTION
       La  traduction française de cette page de manuel a été créée par Chris-
       tophe Blaess <https://www.blaess.fr/christophe/>, Stéphan  Rafin  <ste-
       phan.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.cou-
       lon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>,  Thomas  Huriaux
       <thomas.huriaux@gmail.com>,  Nicolas François <nicolas.francois@centra-
       liens.net>, Florentin Duneau <fduneau@gmail.com>, Simon  Paillard  <si-
       mon.paillard@resel.enst-bretagne.fr>,    Denis   Barbier   <barbier@de-
       bian.org>, David Prévot <david@tilapin.org> et Frédéric Hantrais <fhan-
       trais@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⟩.

Pages du manuel de Linux 6.03   5 février 2023                     strerror(3)

Generated by dwww version 1.15 on Sat Jun 29 01:41:27 CEST 2024.