Share via


perror, _wperror

Vytiskněte chybovou zprávu.

Syntaxe

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

Parametry

message
Řetězcová zpráva, která se má vytisknout.

Poznámky

Funkce perror vytiskne chybovou zprávu do stderr. _wperrorje verze širokého znaku _perrormessage ; argument je _wperror řetězec širokého znaku. _wperror a _perror chovat se stejně jinak.

Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.

Mapování rutin obecného textu

Rutina TCHAR.H _UNICODE a _MBCS není definován _MBCS Definovány _UNICODE Definovány
_tperror perror perror _wperror

message nejprve se vytiskne, následuje dvojtečka, pak systémová chybová zpráva pro poslední volání knihovny, která vytvořila chybu, a nakonec znakem nového řádku. Pokud message je ukazatel null nebo ukazatel na řetězec null, perror vytiskne pouze chybovou zprávu systému.

Číslo chyby je uloženo v proměnné errno (definované v ERRNO. H). Systémové chybové zprávy jsou přístupné prostřednictvím proměnné _sys_errlist, což je pole zpráv seřazených podle čísla chyby. perror vytiskne příslušnou chybovou errno zprávu s použitím hodnoty jako indexu do _sys_errlist. Hodnota proměnné _sys_nerr je definována jako maximální počet prvků v _sys_errlist poli.

Pokud chcete dosáhnout přesných výsledků, zavolejte perror ihned po rutině knihovny chybu. V opačném případě můžou následující volání hodnotu přepsat errno .

V operačním systému Windows jsou některé errno hodnoty uvedené v ERRNO. H se nepoužívá. Tyto hodnoty jsou vyhrazeny pro použití operačním systémem systém UNIX. Viz errno, _doserrno_sys_errlist, a _sys_nerr seznam errno hodnot používaných operačním systémem Windows. perror vytiskne prázdný řetězec pro libovolnou errno hodnotu, kterou tyto platformy nepoužívají.

Požadavky

Rutina Požadovaný hlavičkový soubor
perror <stdio.h> nebo <stdlib.h>
_wperror <stdio.h> nebo <wchar.h>

Další informace o kompatibilitě najdete v tématu Kompatibilita.

Knihovny

Všechny verze knihoven runtime jazyka C.

Příklad

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

Viz také

Řízení procesů a prostředí
clearerr
ferror
strerror, _strerror, _wcserror, __wcserror