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
. _wperror
je verze širokého znaku _perror
message
; 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 definovaný |
_UNICODE definovaný |
---|---|---|---|
_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 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