#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.
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 ».
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').
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 error, 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.
Les fonctions strerrorname_np() et strerrordesc_np() sont apparues pour la première fois dans la version 2.32 de la glibc.
Interface | Attribut | Valeur |
strerror() | Sécurité des threads |
MT-Unsafe race:strerror
|
strerrorname_np(), strerrordesc_np() | Sécurité des threads | MT-Safe |
strerror_r(), strerror_l() | Sécurité des threads | MT-Safe |
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.
strerrorname_np() et strerrordesc_np() sont thread-safe et async-signal-safe.
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 à