perror, _wperror

Stampare un messaggio di errore.

Sintassi

void perror(
   const char *message
);
void _wperror(
   const wchar_t *message
);

Parametri

message
Messaggio stringa da stampare.

Osservazioni:

La funzione perror stampa un messaggio di errore su stderr. _wperror è una versione a caratteri wide di _perror; l'argomento message in _wperror è una stringa di caratteri wide. In caso contrario,_wperror e _perror si comportano in modo identico.

Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.

Mapping di routine di testo generico

Routine TCHAR.H _UNICODE e _MBCS non definito _MBCS Definito _UNICODE Definito
_tperror perror perror _wperror

message viene prima stampato, seguito da due punti, quindi dal messaggio di errore del sistema per l'ultima chiamata di libreria che ha generato l'errore e, infine, da un carattere di nuova riga. Se message è un puntatore null o un puntatore a una stringa null, perror stampa solo il messaggio di errore del sistema.

Il numero di errore viene archiviato nella variabile errno (definita in ERRNO. H). I messaggi di errore di sistema sono accessibili tramite la variabile _sys_errlist, ovvero una matrice di messaggi ordinati in base al numero di errore. perror stampa il messaggio di errore appropriato utilizzando il valore errno come indice a _sys_errlist. Il valore della variabile _sys_nerr viene definito come numero massimo di elementi nella _sys_errlist matrice.

Per ottenere risultati accurati, chiamare perror immediatamente dopo che una routine di libreria restituisce un errore. In caso contrario, le chiamate successive possono sovrascrivere il valore errno.

Nel sistema operativo Windows, alcuni valori errno elencati in ERRNO.H sono inutilizzati. Questi valori sono riservati per l'utilizzo del sistema operativo UNIX. Vedere errno, _doserrno, _sys_errliste _sys_nerr per un elenco di errno valori usati dal sistema operativo Windows. perror stampa una stringa vuota per qualsiasi valore errno non utilizzato da queste piattaforme.

Requisiti

Ciclo Intestazione obbligatoria
perror <stdio.h> o <stdlib.h>
_wperror <stdio.h> o <wchar.h>

Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).

Librerie

Tutte le versioni delle librerie di runtime C.

Esempio

// 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

Vedi anche

Processo e controllo dell'ambiente
clearerr
ferror
strerror, _strerror, _wcserror, __wcserror