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 NULL
le 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
, _wcserror
et 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
._wcserror
strerror
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 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 |
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
.