strerror

STRERROR(3)                Manuel du programmeur Linux               STRERROR(3)



NOM
       strerror, strerrorname_np, strerrordesc_np, strerror_r, strerror_l -
       return string describing error number

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 compatible XSI est fournie si :
           (_POSIX_C_SOURCE >= 200112L) && !  _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 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.

       Like strerror(), the strerrordesc_np()  function returns a pointer to a
       string that describes the error code passed in the argument errnum, with
       the difference that the returned string is not translated according to
       the current locale.

       The strerrorname_np()  function returns a pointer to a string containing
       the name of the error code passed in the argument errnum.  For example,
       given EPERM as an argument, this function returns a pointer to the string
       "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.

       On success, strerrorname_np()  and strerrordesc_np()  return the
       appropriate error description string.  If errnum is an invalid error
       number, these functions return 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.

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

       ┌───────────────────┬──────────────────────┬─────────────────────────┐
       │Interface          Attribut             Valeur                  │
       ├───────────────────┼──────────────────────┼─────────────────────────┤
       │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.

       The GNU-specific functions strerror_r(), strerrorname_np(), and
       strerrordesc_np()  are nonstandard extensions.

       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()  and strerrordesc_np()  are thread-safe and
       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.10 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 ⟨⟩.




                                 1 novembre 2020                     STRERROR(3)