perror
, _wperror
Imprime un message d’erreur.
Syntaxe
void perror(
const char *message
);
void _wperror(
const wchar_t *message
);
Paramètres
message
Message de type chaîne à imprimer.
Notes
La fonction perror
imprime un message d’erreur dans stderr
. _wperror
est une version à caractères larges de _perror
; l'argument message
de _wperror
est une chaîne à caractères larges. Sinon,_wperror
et _perror
se comportent de la même façon.
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 |
---|---|---|---|
_tperror |
perror |
perror |
_wperror |
message
est imprimé en premier, suivi de deux-points, du message d’erreur système relatif au dernier appel de bibliothèque qui a généré l’erreur et enfin d’un caractère de saut de ligne. Si message
est un pointeur Null ou un pointeur désignant une chaîne de valeur Null, perror
imprime uniquement le message d’erreur système.
Le numéro d’erreur est stocké dans la variable errno
(définie dans ERRNO. H). Les messages d’erreur système sont accessibles via la variable _sys_errlist
, qui est un tableau de messages classés par numéro d’erreur. perror
imprime le message d’erreur approprié en utilisant la valeur errno
comme index de _sys_errlist
. La valeur de la variable _sys_nerr
est définie comme le nombre maximal d’éléments dans le _sys_errlist
tableau.
Pour obtenir des résultats précis, appelez perror
immédiatement après qu’une routine de bibliothèque retourne une erreur. Sinon, les appels suivants peuvent remplacer la valeur errno
.
Dans le système d’exploitation Windows, certaines valeurs errno
répertoriées dans ERRNO. H ne sont pas utilisées. Ces valeurs sont réservées au système d’exploitation UNIX. Consultez errno
, _doserrno
, _sys_errlist
et _sys_nerr
pour obtenir la liste des errno
valeurs utilisées par le système d’exploitation Windows. perror
imprime une chaîne vide pour toute valeur errno
non utilisée par ces plateformes.
Spécifications
Routine | En-tête requis |
---|---|
perror |
<stdio.h> ou <stdlib.h> |
_wperror |
<stdio.h> ou <wchar.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.
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 );
}
}
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
Voir aussi
Processus et contrôle d’environnement
clearerr
ferror
strerror
, , _strerror
_wcserror
, ,__wcserror