Provided by: manpages-fr-dev_4.27.0-1_all 

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);
/* conforme à XSI */
char *strerror_r(int errnum, char buf[.buflen], 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, et le pointeur renvoyé sera
invalidé lors d'un appel ultérieur à strerror() ou strerror_l(), ou si le thread qui a obtenu la chaînes
se termine. 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 ». Si 0 est donné comme argument, cette fonction renvoie un pointeur vers
la chaîne « 0 ».
strerror_r()
strerror_r() est identique à strerror() mais peut utiliser le tampon buf plutôt que d'en allouer un en
interne. 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
(avant la 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 description d’erreur.
ATTRIBUTS
Pour une explication des termes utilisés dans cette section, consulter attributes(7).
┌────────────────────────────┬──────────────────────┬───────────────────────────────────────────────────┐
│ Interface │ Attribut │ Valeur │
├────────────────────────────┼──────────────────────┼───────────────────────────────────────────────────┤
│ strerror() │ Sécurité des threads │ MT-Safe │
├────────────────────────────┼──────────────────────┼───────────────────────────────────────────────────┤
│ strerrorname_np(), │ Sécurité des threads │ MT-Safe │
│ strerrordesc_np() │ │ │
├────────────────────────────┼──────────────────────┼───────────────────────────────────────────────────┤
│ strerror_r(), strerror_l() │ Sécurité des threads │ MT-Safe │
└────────────────────────────┴──────────────────────┴───────────────────────────────────────────────────┘
Avant la glibc 2.32, strerror() n'est pas MT-Safe.
STANDARDS
strerror()
C11, POSIX.1-2008.
strerror_r()
strerror_l()
POSIX.1-2008.
strerrorname_np()
strerrordesc_np()
GNU.
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.
HISTORIQUE
strerror()
POSIX.1-2001, C89.
strerror_r()
POSIX.1-2001.
strerror_l()
glibc 2.6. POSIX.1-2008.
strerrorname_np()
strerrordesc_np()
glibc 2.32.
NOTES
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), signal-safety(7)
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 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.9.1 15 juin 2024 strerror(3)