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.