Sdílet prostřednictvím


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 _strerrorv uvedeném pořadí.

_strerror, _wcserrora __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.

Viz také

Manipulace s řetězci
clearerr
ferror
perror, _wperror