perror, _wperror
Visualizzare un messaggio di errore.
void perror(
const char *string
);
void _wperror(
const wchar_t *string
);
Parametri
- string
messaggio stringa da stampare.
Note
perror la funzione stampa un messaggio di errore su stderr._wperror è una versione a caratteri estesi di _perror; string argomento a _wperror è una stringa di caratteri estesi._wperror e _perror comportano in modo identico in caso contrario.
Mapping di routine a testo generico
routine di TCHAR.H |
_UNICODE & _MBCS non definiti |
_MBCS definito |
_UNICODE definito |
---|---|---|---|
_tperror |
perror |
perror |
_wperror |
string viene formattato in primo luogo, seguito da due punti, quindi il 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 errore viene memorizzato nella variabile errno (definito da ERRNO.H).I messaggi di errore di sistema accede alla variabile _sys_errlist, che è una matrice di messaggi ha ordinato in base al numero errore.perror viene visualizzato il messaggio di errore appropriato mediante errno valore come indice a _sys_errlist.Il valore della variabile _sys_nerr viene definito come numero massimo di elementi in _sys_errlist matrice.
Per risultati accurati, chiamata perror subito dopo il completamento di una routine di libreria con un errore.In caso contrario, le successive chiamate possono sovrascrivere errno valore.
Nel sistema operativo Windows, alcuni errno i valori elencati in ERRNO.H sono inutilizzati.Questi valori sono riservati per l'utilizzo del sistema operativo dell'utilità UNIX.vedere _doserrno, errno, _sys_errlist e _sys_nerr per un elenco di errno valori utilizzati dal sistema operativo Windows.perror contiene una stringa vuota per qualsiasi errno valore non utilizzato in queste piattaforme.
Requisiti
routine |
Intestazione di associazione |
---|---|
perror |
<stdio.h> o <definito> |
_wperror |
<stdio.h> o <wchar.h> |
per informazioni di compatibilità aggiuntive, vedere compatibilità nell'introduzione.
Librerie
Tutte le versioni di Librerie di runtime del linguaggio 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 c standard, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di pinvoke.