strerror
, _strerror
, , _wcserror
__wcserror
Získá řetězec systémové chybové zprávy (strerror
, _wcserror
) nebo formátuje řetězec chybové zprávy zadané uživatelem (_strerror
, __wcserror
). K dispozici jsou bezpečnější verze těchto funkcí; viz strerror_s
, _strerror_s
, _wcserror_s
, __wcserror_s
.
Syntaxe
char * strerror(
int errnum );
char * _strerror(
const char *strErrMsg );
wchar_t * _wcserror(
int errnum );
wchar_t * __wcserror(
const wchar_t *strErrMsg );
Parametry
errnum
Číslo chyby.
strErrMsg
Zpráva zadaná uživatelem
Vrácená hodnota
Všechny tyto funkce vrací ukazatel na řetězec chybové zprávy ve vyrovnávací paměti místního úložiště vlákna vlastněné modulem runtime. Později může volání stejného vlákna přepsat tento řetězec.
Poznámky
Funkce strerror
se mapuje errnum
na řetězec chybové zprávy a vrátí ukazatel na řetězec. _strerror
Funkce strerror
ve skutečnosti zprávu nevytisknou. Pokud chcete tisknout, zavolejte výstupní funkci, například fprintf
:
if (( _access( "datafile", 2 )) == -1 )
fprintf( stderr, _strerror(NULL) );
Pokud strErrMsg
se předá jako NULL
, _strerror
vrátí ukazatel na řetězec. Obsahuje systémovou chybovou zprávu pro poslední volání knihovny, která vytvořila chybu. Pokud voláte __wcserror
, řetězec chybové zprávy je ukončen znakem nového řádku ('\n'
). Ostatní funkce nepřidají '\n'
. Pokud strErrMsg
není NULL
, řetězec obsahuje v pořadí: řetězec strErrMsg
, dvojtečku, mezeru, chybovou zprávu systému. Řetězcová zpráva může mít maximálně 94 znaků v úzkých (_strerror
) nebo širokých (__wcserror
) znaméních.
Skutečné číslo chyby pro _strerror
je uloženo v proměnné errno
. Chcete-li dosáhnout přesných výsledků, volání _strerror
ihned po rutině knihovny vrátí chybu. V opačném případě může pozdější volání rutin knihovny přepsat errno
hodnotu.
_wcserror
a __wcserror
jsou široce znakové verze strerror
a _strerror
v uvedeném pořadí.
_strerror
, _wcserror
a __wcserror
jsou specifické pro Microsoft, nikoli součást standardní knihovny jazyka C. Nedoporučujeme je používat tam, kde chcete přenosný kód. Pro kompatibilitu standardního jazyka C použijte strerror
místo toho.
Pokud chcete získat chybové řetězce, doporučujeme strerror
nebo _wcserror
místo zastaralých _sys_errlist
maker a _sys_nerr
zastaralých interních funkcí __sys_errlist
a __sys_nerr
.
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ý |
---|---|---|---|
_tcserror |
strerror |
strerror |
_wcserror |
Požadavky
Rutina | Požadovaný hlavičkový soubor |
---|---|
strerror |
<string.h> |
_strerror |
<string.h> |
_wcserror , __wcserror |
<string.h> |
Další informace o kompatibilitě najdete v tématu Kompatibilita.
Příklad
Podívejte se na příklad pro perror
.