perror
, _wperror
Wyświetl komunikat o błędzie.
Składnia
void perror(
const char *message
);
void _wperror(
const wchar_t *message
);
Parametry
message
Komunikat ciągu do wydrukowania.
Uwagi
Funkcja perror
wyświetla komunikat o błędzie w pliku stderr
. _wperror
jest wersją szerokoznakową ; _perror
argument to message
_wperror
ciąg o szerokim znaku. _wperror
i _perror
zachowywać się identycznie inaczej.
Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.
Mapowania procedur tekstu ogólnego
Procedura TCHAR.H | _UNICODE i _MBCS niezdefiniowane |
_MBCS zdefiniowany |
_UNICODE zdefiniowany |
---|---|---|---|
_tperror |
perror |
perror |
_wperror |
message
najpierw zostanie wydrukowany dwukropek, a następnie przez komunikat o błędzie systemu dla ostatniego wywołania biblioteki, który wygenerował błąd, a na koniec przez znak nowego wiersza. Jeśli message
jest wskaźnikiem o wartości null lub wskaźnikiem do ciągu o wartości null, perror
wyświetla tylko komunikat o błędzie systemu.
Numer błędu jest przechowywany w zmiennej errno
(zdefiniowanej w pliku ERRNO. H). Komunikaty o błędach systemu są dostępne za pośrednictwem zmiennej _sys_errlist
, która jest tablicą komunikatów uporządkowanych według numeru błędu. perror
Wyświetla odpowiedni komunikat o błędzie przy użyciu errno
wartości jako indeksu do _sys_errlist
. Wartość zmiennej _sys_nerr
jest definiowana jako maksymalna liczba elementów w tablicy _sys_errlist
.
Aby uzyskać dokładne wyniki, wywołaj metodę perror
natychmiast po wykonaniu procedury biblioteki zwraca błąd. W przeciwnym razie kolejne wywołania mogą zastąpić errno
wartość.
W systemie operacyjnym Windows niektóre errno
wartości wymienione w ERRNO. H są nieużywane. Te wartości są zarezerwowane do użycia przez system operacyjny UNIX. Zobacz errno
, _doserrno
, _sys_errlist
i , aby _sys_nerr
uzyskać listę wartości używanych errno
przez system operacyjny Windows. perror
Drukuje pusty ciąg dla żadnej errno
wartości, która nie jest używana przez te platformy.
Wymagania
Procedura | Wymagany nagłówek |
---|---|
perror |
<stdio.h> lub <stdlib.h> |
_wperror |
<stdio.h> lub <wchar.h> |
Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.
Biblioteki
Wszystkie wersje bibliotek czasu wykonywania języka C.
Przykład
// 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
Zobacz też
Kontrola procesu i środowiska
clearerr
ferror
strerror
, , _strerror
, , _wcserror
__wcserror