strerror

Autres langues

Langue: fr

Version: 21 juillet 2003 (openSuse - 09/10/07)

Section: 3 (Bibliothèques de fonctions)

NOM

strerror, strerror_r - Obtenir le libellé d'un code d'erreur.

SYNOPSIS


#include <string.h>



char *strerror (int errnum);


int strerror_r(int errnum, char *buf, size_t n);

DESCRIPTION

La fonction strerrror() renvoie une chaîne décrivant 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() 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 multi-threads, puisqu'elle renvoie la chaîne dans le buffer buf de longueur n fourni par l'appelant.
 

VALEUR RENVOYÉE

La fonction strerror() renvoie la description correspondant au code transmis, ou un message d'erreur inconnue si le code n'existe pas. La valeur de errno n'est pas modifiée lors des appels réussi, mais contient une valeur non-nulle en cas d'erreur.

La fonction strerror_r() renvoie 0 si elle réussit et -1 sinon, en remplissant errno.
 

ERREURS

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

CONFORMITÉ

SVID 3, POSIX, BSD 4.3, ISO/IEC 9899:1990 (C89).

La fonction strerror_r() avec le prototype décrit ci-dessus est spécifiée par SUSv3, et était utilisée sous Digital Unix et HP Unix. Une fonction incompatible, avec le prototype

char *strerror_r(int errnum, char *buf, size_t n);

était une extension GNU utilisée par la GlibC, et doit être considérée comme obsolète en regard de SUS v3. La version GNU pouvait, sans y être obligée, utiliser le buffer fourni par l'utilisateur. Si elle le faisait, le résultat pouvait être tronqué si le buffer était trop petit. Le résultat était toujours terminé par un NUL.

VOIR AUSSI

errno(3), perror(3), strsignal(3)

TRADUCTION

Christophe Blaess, 1996-2003.