Condividi tramite


perror, _wperror

Stampa un messaggio di errore.

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

Parametri

  • string
    Stringa del messaggio da stampare.

Note

La funzione perror stampa un messaggio di errore su stderr. _wperror è una versione a caratteri wide di _perror; l'argomento string in _wperror è una stringa di caratteri estesi. Altrimenti _wperror e _perror si comportano in modo identico.

Mapping di routine di testo generico

Routine TCHAR.H

_UNICODE & _MBCS non definiti

_MBCS definito

_UNICODE definito

_tperror

perror

perror

_wperror

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

Il numero dell'errore viene memorizzato nella variabile errno (definito in ERRNO.H). I messaggi di errore del sistema sono accessibili tramite la variabile _sys_errlist, che è una matrice di messaggi ordinata 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 è definito come numero massimo di elementi della matrice _sys_errlist.

Per risultati accurati, chiamare perror subito dopo il ritorno di un'errore da parte di una routine della libreria. In caso contrario, le chiamate successive possono sovrascrivere il valore errno.

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

Requisiti

Routine

Intestazione obbligatoria

perror

<stdio.h> or <stdlib.h>

_wperror

<stdio.h> o <wchar.h>

Per ulteriori informazioni sulla compatibilità, vedere Compatibilità nell'Introduzione.

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 );
   }
}

Output

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

Equivalente .NET Framework

Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma.

Vedere anche

Riferimenti

Controllo processo e ambiente

clearerr

ferror

strerror, _strerror, _wcserror, __wcserror