Partager via


strerror, _strerror, _wcserror, __wcserror

Obtient une chaîne de message d'erreur système (strerror, _wcserror) ou met en forme une chaîne de message d'erreur fournie par l'utilisateur (_strerror, __wcserror). Des versions plus sécurisées de ces fonctions sont disponibles ; consultez strerror_s, _strerror_s, _wcserror_s, __wcserror_s.

char *strerror(    int errnum  ); char *_strerror(    const char *strErrMsg  ); wchar_t * _wcserror(    int errnum  ); wchar_t * __wcserror(    const wchar_t *strErrMsg  );

Paramètres

  • errnum
    Numéro d'erreur.

  • strErrMsg
    Message fourni par l'utilisateur.

Valeur de retour

Toutes ces fonctions retournent un pointeur vers la chaîne de message d'erreur. Les appels suivants peuvent remplacer la chaîne.

Notes

La fonction strerror mappe errnum à une chaîne de message d'erreur et retourne un pointeur vers la chaîne. Ni strerror ni _strerror n'impriment réellement le message : pour cela, vous devez appeler une fonction de sortie telle que fprintf :

if (( _access( "datafile",2 )) == -1 )
   fprintf( stderr, _strerror(NULL) );

Si strErrMsg est passé comme valeur NULL, _strerror retourne un pointeur vers une chaîne qui contient le message d'erreur système pour le dernière appel de bibliothèque qui a généré l'erreur. La chaîne de message d'erreur se termine par le caractère de saut de ligne ('\n'). Si strErrMsg n'est pas égal à NULL, _strerror retourne un pointeur vers une chaîne qui contient (dans l'ordre) votre message de type chaîne, deux-points, un espace, le message d'erreur système pour le dernier appel de bibliothèque qui a généré une erreur et un caractère de saut de ligne. La longueur maximale de votre message de type chaîne est de 94 caractères.

Le numéro d'erreur effectif de _strerror est stocké dans la variable errno. Pour générer des résultats précis, appelez _strerror de suite après le retour avec erreur d'une routine de bibliothèque. Sinon, les appels suivants à strerror ou _strerror peuvent remplacer la valeur errno.

_wcserror et __wcserror sont, respectivement, des versions à caractères larges de strerror et _strerror.

_strerror, _wcserror et __wcserror ne font pas partie de la définition ANSI ; ce sont des extensions Microsoft et nous vous déconseillons de les utiliser là où vous voulez un code portable. Pour une compatibilité ANSI, utilisez plutôt strerror.

Pour obtenir des chaînes d'erreur, nous vous recommandons strerror ou _wcserror plutôt que les macros déconseillées _sys_errlist et _sys_nerr et les fonctions internes déconseillées __sys_errlist et __sys_nerr.

Mappages de routines de texte générique

Routine TCHAR.H

_UNICODE et _MBCS non définis

_MBCS défini

_UNICODE défini

_tcserror

strerror

strerror

_wcserror

Configuration requise

Routine

En-tête requis

strerror

<string.h>

_strerror

<string.h>

_wcserror, __wcserror

<string.h>

Pour plus d'informations sur la compatibilité, voir Compatibilité.

Exemple

Voir l'exemple pour perror.

Équivalent .NET Framework

System::Exception::Message

Voir aussi

Référence

Manipulation de chaînes (CRT)

clearerr

ferror

perror, _wperror