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 ; voir , , _wcserror_s_strerror_s, __wcserror_s.strerror_s

Syntaxe

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 retournée

Toutes ces fonctions retournent un pointeur vers une chaîne de message d’erreur, dans une mémoire tampon de stockage locale de thread appartenant au runtime. Les appels ultérieurs sur le même thread peuvent remplacer cette chaîne.

Notes

La fonction strerror mappe errnum à une chaîne de message d'erreur et retourne un pointeur vers la chaîne. Les strerror fonctions et _strerror les fonctions n’impriment pas réellement le message. Pour imprimer, appelez une fonction de sortie telle que fprintf:

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

Si strErrMsg elle est passée en tant que NULL, _strerror retourne un pointeur vers une chaîne. Il contient le message d’erreur système pour le dernier appel de bibliothèque qui a généré une erreur. Si vous appelez __wcserror, la chaîne de message d’erreur est arrêtée par le caractère de nouvelle ligne ('\n'). Les autres fonctions n’ajoutent '\n'pas . Quand strErrMsg ce n’est pas NULLle cas, la chaîne contient, dans l’ordre : votre strErrMsg chaîne, un signe deux-points, un espace, le message d’erreur système. Votre message de chaîne peut être, au plus, 94 caractères longs, en caractères étroits (_strerror) ou larges (__wcserror).

Le numéro d’erreur réel pour _strerror lequel il est stocké dans la variable errno. Pour produire des résultats précis, appelez _strerror immédiatement après qu’une routine de bibliothèque retourne une erreur. Sinon, les appels ultérieurs aux routines de bibliothèque peuvent remplacer la errno valeur.

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

_strerror, _wcserroret sont spécifiques à Microsoft, et __wcserror ne font pas partie de la bibliothèque C Standard. Nous vous déconseillons de les utiliser là où vous voulez du code portable. Pour la compatibilité C standard, utilisez strerror plutôt.

Pour obtenir des chaînes d’erreur, nous vous recommandons ou non les macros _sys_errlist dépréciées et _sys_nerr les fonctions __sys_errlist internes dépréciées et __sys_nerr._wcserrorstrerror

Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.

Mappages de routine de texte générique

Routine TCHAR.H _UNICODE et _MBCS non défini _MBCS Défini _UNICODE Défini
_tcserror strerror strerror _wcserror

Spécifications

Routine En-tête requis
strerror <string.h>
_strerror <string.h>
_wcserror, __wcserror <string.h>

Pour plus d’informations sur la compatibilité, consultez Compatibility.

Exemple

Consultez l’exemple pour perror.

Voir aussi

Manipulation de chaîne
clearerr
ferror
perror, _wperror