perror, _wperror
Retourner un message d'erreur.
void perror(
const char *string
);
void _wperror(
const wchar_t *string
);
Paramètres
- string
Chaîne du message à retourner.
Notes
La fonction perror affiche un message d'erreur à stderr. _wperror est une version à large caractères de _perror; l'argument string de _wperror est une chaîne de larges caractères. Pour le reste, _wperror et _perror se comportent de la même manière.
Mappages de routines de texte générique
Routine TCHAR.H |
_UNICODE & _MBCS non définis |
_MBCS défini |
_UNICODE défini |
---|---|---|---|
_tperror |
perror |
perror |
_wperror |
string est retourné tout d'abord, suivi de deux-points, puis par le message d'erreur du système pour le dernier appel de bibliothèque qui a généré l'erreur, et enfin par un caractère de saut de ligne. Si string est un pointeur null ou un pointeur vers une chaîne Null, perror affiche uniquement le message d'erreur système.
Numéro d'erreur stocké dans errno variable (défini dans ERRNO.H). Les messages d'erreur système sont accessibles via le variable _sys_errlist, qui est un tableau du nombre par erreur classé par messages. perror imprime le message d'erreur approprié à la valeur errno en tant qu'index de _sys_errlist. La valeur de la variable _sys_nerr est définie comme nombre maximal d'éléments du tableau _sys_errlist.
Pour des résultats exacts, appelez perror immédiatement après une routine de bibliothèque retourne avec une erreur. Sinon, les appels suivants peuvent réecrire la valeur errno.
Dans le système d'exploitation Windows, certaines valeurs errno répertoriées dans ERRNO.H sont non-utilisées. Ces valeurs sont réservés pour une utilisation par le système d'exploitation UNIX. Voir _doserrno, errno, _sys_errlist, and _sys_nerr pour une liste de valeurs errno utilisées par le système d'exploitation Windows. perror affiche une chaîne vide pour toute valeur errno non utilisée par ces plateformes.
Configuration requise
Routine |
En-tête requis |
---|---|
perror |
<stdio.h> or <stdlib.h> |
_wperror |
<stdio.h> ou <wchar.h> |
Pour plus d'informations sur la compatibilité, consultez Compatibilité dans l'introduction.
Bibliothèques
Toutes les versions des bibliothèques Runtime C.
Exemple
// crt_perror.c
// compile with: /W3
/* This program attempts to open a file named
* NOSUCHF.ILE. Because this file probably doesn't exist,
* an error message is displayed. The same message is
* created using perror, strerror, and _strerror.
*/
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <io.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <share.h>
int main( void )
{
int fh;
if( _sopen_s( &fh, "NOSUCHF.ILE", _O_RDONLY, _SH_DENYNO, 0 ) != 0 )
{
/* Three ways to create error message: */
perror( "perror says open failed" );
printf( "strerror says open failed: %s\n",
strerror( errno ) ); // C4996
printf( _strerror( "_strerror says open failed" ) ); // C4996
// Note: strerror and _strerror are deprecated; consider
// using strerror_s and _strerror_s instead.
}
else
{
printf( "open succeeded on input file\n" );
_close( fh );
}
}
Sortie
perror says open failed: No such file or directory
strerror says open failed: No such file or directory
_strerror says open failed: No such file or directory
Équivalent .NET Framework
Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez Exemples d'appel de plateforme.