Partager via


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_errlistet _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