strerror, _strerror, _wcserror, __wcserror

 

Pour obtenir la dernière documentation sur Visual Studio 2017, consultez Documentation Visual Studio 2017.

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 la page 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.

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

La fonction strerror mappe errnum à une chaîne de message d'erreur et retourne un pointeur vers la chaîne. Ni strerror ni _strerror réellement imprime 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 réel pour _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 de strerror ou _wcserror au lieu des 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
_tcserrorstrerrorstrerror_wcserror
RoutineEn-tête requis
strerror<string.h>
_strerror<string.h>
_wcserror, __wcserror<string.h>

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

Consultez l’exemple de perror.

System::exception::message

Manipulation de chaînes
clearerr
ferror
pError, _wperror

Afficher: