Udostępnij za pośrednictwem


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ą ; _perrorargument 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_errlisti , aby _sys_nerruzyskać 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