Scroll to navigation

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

NOM

strerror, strerror_r - Obtenir le libellé d'un numéro d'erreur

SYNOPSIS

#include <string.h>

char *strerror(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 */


Exigences de macros de test de fonctionnalités pour la glibc (voir feature_test_macros(7)) :

La version compatible XSI de strerror_r() est fournie si :
(_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && !_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. Cette chaîne ne doit pas être modifiée par l'application, mais peut être écrasée par un appel ultérieur à perror(3) ou strerror(). Aucune autre fonction de bibliothèque ne modifie cette chaîne.

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) et une version spécifique GNU (disponible depuis la glibc 2.0). La version compatible XSI est fournie par la macro de test mentionnée dans le SYNOPSIS  sino la version spécifique GNU est fournie. Si aucune macro de test n'est définie explicitement, alors (depuis la glibc 2.4) _POSIX_SOURCE est définie par défaut avec la valeur 200112L, de telle sorte que la version compatible XSI de strerror_r() est 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 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 la chaîne inclut toujours l'octet nul de terminaison.

VALEUR RENVOYÉE

La fonction strerror() et la fonction GNU strerror_r() renvoient la description correspondant au code transmis, ou un message « Unknown error nnn » si le numéro d'erreur n'existe pas.

La fonction strerror_r() conforme XSI renvoie 0 si elle réussit et -1 si elle échoue et écrit errno pour indiquer l'erreur.

ERREURS

La valeur de errnum n'est pas un code d'erreur valide.
Le tampon fourni n'est pas assez grand.

CONFORMITÉ

strerror() est spécifiée par POSIX.1-2001, C89 et C99. strerror_r() est spécifiée par POSIX.1-2001.

La fonction strerror_r() spécifique GNU n'est pas une extension standard.

POSIX.1-2001 permet à strerror() d'écrire errno si l'appel rencontre une erreur mais ne spécifie pas quelle valeur devrait être retourné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.

VOIR AUSSI

err(3), errno(3), error(3), perror(3), strsignal(3)

COLOPHON

Cette page fait partie de la publication 3.23 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <URL:http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <URL:http://alioth.debian.org/projects/perkamon/>.

Christophe Blaess <URL:http://www.blaess.fr/christophe/> (1996-2003), Alain Portal <URL:http://manpagesfr.free.fr/> (2003-2006). Nicolas François et l'équipe francophone de traduction de Debian (2006-2009).

Veuillez signaler toute erreur de traduction en écrivant à <perkamon-l10n-fr@lists.alioth.debian.org>.

Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».

30 mars 2009