strerror
Table des matières
Retour à l'index
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.
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 à
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(),
strerrordesc_np()
| Sécurité des threads | MT-Safe
|
|
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 à
Index
- NOM
-
- BIBLIOTHÈQUE
-
- SYNOPSIS
-
- DESCRIPTION
-
- strerror_r()
-
- strerror_l()
-
- VALEUR RENVOYÉE
-
- ERREURS
-
- ATTRIBUTS
-
- STANDARDS
-
- HISTORIQUE
-
- NOTES
-
- VOIR AUSSI
-
- TRADUCTION
-
This document was created by
man2html,
using the manual pages.
Time: 05:06:27 GMT, September 19, 2025