Sdílet prostřednictvím


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.

Ekvivalent v rozhraní .NET Framework

System::Exception::Message

Viz také

Referenční dokumentace

Manipulaci s řetězci (CRT)

clearerr

ferror

perror _wperror