strerror_s, _strerror_s, _wcserror_s, __wcserror_s
Chybová zpráva systému (strerror_s, _wcserror_s) nebo vytisknout uživatelský chybová zpráva (_strerror_s, __wcserror_s).Tyto verze jsou strerror, _strerror, _wcserror, __wcserror s vylepšení zabezpečení popsaným v Funkce zabezpečení v CRT.
errno_t strerror_s(
char *buffer,
size_t numberOfElements,
int errnum
);
errno_t _strerror_s(
char *buffer,
size_t numberOfElements,
const char *strErrMsg
);
errno_t _wcserror_s(
wchar_t *buffer,
size_t numberOfElements,
int errnum
);
errno_t __wcserror_s(
wchar_t *buffer,
size_t numberOfElements,
const wchar_t *strErrMsg
);
template <size_t size>
errno_t strerror_s(
char (&buffer)[size],
int errnum
); // C++ only
template <size_t size>
errno_t _strerror_s(
char (&buffer)[size],
const char *strErrMsg
); // C++ only
template <size_t size>
errno_t _wcserror_s(
wchar_t (&buffer)[size],
int errnum
); // C++ only
template <size_t size>
errno_t __wcserror_s(
wchar_t (&buffer)[size],
const wchar_t *strErrMsg
); // C++ only
Parametry
buffer
Vyrovnávací paměť pro uložení chybový řetězec.numberOfElements
Velikost vyrovnávací paměti.errnum
Číslo chyby.strErrMsg
Zpráva zadaných uživatelem.
Vrácená hodnota
Nula, pokud je úspěšná, kód chyby při selhání.
Chyba podmíněna
buffer |
numberOfElements |
strErrMsg |
Obsahbuffer |
---|---|---|---|
NULL |
žádné |
žádné |
není k dispozici |
žádné |
0 |
žádné |
Nezměněno |
Poznámky
strerror_s Funkci mapy errnum řetězec chybová zpráva, vrací ukazatel na řetězec._strerror_sNelze převzít číslo chyby; používá aktuální hodnotu errno k určení příslušnou zprávu.Ani strerror_s ani _strerror_s skutečně vytiskne zprávu:, potřebujete například volání funkce jazyka výstup fprintf:
if (( _access( "datafile",2 )) == -1 )
{
_strerror_s(buffer, 80);
fprintf( stderr, buffer );
}
Pokud strErrMsg je NULL, _strerror_s vrací ukazatel na řetězec obsahující systém chybovou zprávu pro poslední volání knihovny, který je chyba.Chybová zpráva řetězec ukončen znakem nového řádku (\n).Pokud strErrMsg není rovno NULL, pak _strerror_s vrací ukazatel na řetězec obsahující (v pořadí) řetězce zprávy, dvojtečkou, mezera, chybová zpráva systému pro poslední volání knihovny chybu a znak nového řádku.Řetězce zprávy může být nanejvýš 94 znaků.
Tyto funkce zkrátit chybová zpráva, pokud její délka přesahuje numberOfElements -1.Výsledný řetězec v buffer vždy zakončený znakem null.
Skutečná chyba číslo pro _strerror_s je uložena v proměnné kód chyby.Chybové zprávy systému, které jsou přístupné prostřednictvím proměnné _sys_errlist, což je pole zprávy seřazený podle čísla chyby._strerror_spřistupuje k této chybě pomocí errno hodnotu jako proměnná index _sys_errlist.Hodnota proměnné _sys_nerr je definován jako maximální počet prvků _sys_errlist pole.Chcete-li dosáhnout přesných výsledků volání _strerror_s ihned po rutina knihovny vrátí chybu.V opačném případě následné volání na strerror_s nebo _strerror_s lze přepsat errno hodnotu.
_wcserror_sa __wcserror_sjsou verze celého znaku strerror_sa _strerror_s, resp..
Tyto funkce ověřit jejich parametrů.Pokud je vyrovnávací paměť NULL nebo pokud je parametr velikosti 0, vyvolat neplatný parametr popisovače, jak je popsáno v Ověření parametrů .Pokud je povoleno spuštění pokračovat, vrátí funkce EINVAL a errno na EINVAL.
_strerror_s, _wcserror_s,a __wcserror_s nejsou součástí definice ANSI, ale místo toho jsou rozšíření Microsoft.Nepoužívejte je kde je žádoucí přenositelnost; ANSI kompatibility použít strerror_s místo.
V jazyce C++ použití těchto funkcí je zjednodušeno díky šablony přetížení; přetížení lze odvodit vyrovnávací paměti automaticky, není tedy třeba zadat argument velikost.Další informace naleznete v tématu Přetížení šablony zabezpečení.
Ladicí verze tyto funkce nejprve vyplnit vyrovnávací paměti s 0xFD.Toto chování lze zakázat pomocí _CrtSetDebugFillThreshold.
Obecný Text rutinní mapování
TCHAR.Rutina H |
_UNICODE & _MBCS není definován |
_MBCS, definice |
_UNICODE, definice |
---|---|---|---|
_tcserror_s |
strerror_s |
strerror_s |
_wcserror_s |
Požadavky
Rutina |
Požadované záhlaví |
---|---|
strerror_s, _strerror_s |
<string.h> |
_wcserror_s, __wcserror_s |
<string.h> nebo <wchar.h> |
Další informace o kompatibilitě, viz Compatibility v úvodu.
Příklad
Viz příklad pro perror.