Sdílet prostřednictvím


_strdate_s, _wstrdate_s

Kopírovat aktuální systémové datum do vyrovnávací paměti.Jedná se o verze _strdate, _wstrdate s vylepšení zabezpečení, jak je popsáno v Funkce zabezpečení v CRT.

errno_t _strdate_s(
   char *buffer,
   size_t numberOfElements
);
errno_t _wstrdate_s(
   wchar_t *buffer,
   size_t numberOfElements
);
template <size_t size>
errno_t _strdate_s(
   char (&buffer)[size]
); // C++ only
template <size_t size>
errno_t _wstrdate_s(
   wchar_t (&buffer)[size]
); // C++ only

Parametry

  • [out] buffer
    Ukazatel do vyrovnávací paměti, který je zadán řetězec naformátované datum.

  • [in] numberOfElements
    Velikost vyrovnávací paměti.

Vrácená hodnota

0 v případě úspěchu.Vrácená hodnota je kód chyby, pokud dojde k selhání.Kódy chyb jsou definovány v kód chyby.H; Viz Tabulka níže pro přesné chyby generované touto funkcí.Další informace o chybových kódech naleznete v tématu Kód chyby.

Chybové podmínky

buffer

numberOfElements

Výsledek

Obsah buffer

NULL

(žádné)

EINVAL

Nezměněno

Ne NULL (směřující do platné vyrovnávací paměti)

0

EINVAL

Nezměněno

Ne NULL (směřující do platné vyrovnávací paměti)

0 < numberOfElements < 9

EINVAL

Prázdný řetězec

Ne NULL (směřující do platné vyrovnávací paměti)

numberOfElements >= 9

0

Aktuální datum formátované podle poznámky

Problémy se zabezpečením

Předáním neplatný bez NULL hodnota vyrovnávací paměti bude mít za následek narušení přístupu Pokud numberOfElements parametr je větší než 9.

Předáním hodnoty pro velikost, která je větší než skutečná velikost buffer bude mít za následek přetečení vyrovnávací paměti.

Poznámky

Tyto funkce poskytují bezpečnější verze _strdate a _wstrdate._strdate_s Funkce zkopíruje do vyrovnávací paměti, na kterou odkazuje aktuální systémové datum buffernaformátovanou mm/dd/yy, kde mm je dvě číslice představující měsíc, dd je dvě číslice představující den, a yy je poslední dvě číslice roku.Například řetězec 12/05/99 představuje dne 5.Vyrovnávací paměti musí být nejméně 9 znaků.

_wstrdate_sje verze širokého znaku _strdate_s; hodnota argumentu a návrat _wstrdate_s jsou řetězci širokého znaku.Tyto funkce se chovají jinak identicky.

Pokud buffer je NULL ukazatel, nebo -li numberOfElements je méně než 9 znaků, je vyvolána neplatný parametr obslužné rutiny, jak je popsáno v Ověření parametru.Pokud je povoleno spuštění chcete-li pokračovat, tyto funkce vracejí hodnotu -1 a nastavte errno k EINVAL Pokud je vyrovnávací paměť NULL nebo numberOfElements je menší nebo rovna 0 nebo sadu errno k ERANGE Pokud numberOfElements je menší než 9.

V jazyce C++ je použití těchto funkcí zjednodušeno díky přetížení šablon; přetížení dokáží odvodit velikost vyrovnávací paměti automaticky (tak, že eliminují potřebu zadat argument velikosti) a automaticky nahradit starší, nezabezpečené funkce jejími novějšími, bezpečnějšími protějšky.Další informace naleznete v tématu Přetížení zabezpečení šablony.

Rutinní mapování obecného textu:

Rutina TCHAR.H

_UNICODE & _MBCS není definováno

_MBCS definováno

_UNICODE definováno

_tstrdate_s

_strdate_s

_strdate_s

_wstrdate_s

Požadavky

Rutina

Požadované záhlaví

_strdate

<time.h>

_wstrdate

<Time.h> nebo <wchar.h>

_strdate_s

<time.h>

Příklad

Naleznete v příkladu pro čas.

Ekvivalent v rozhraní .NET Framework

System::DateTime::Parse

Viz také

Referenční dokumentace

Správa času

asctime_s, _wasctime_s

ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s

gmtime_s, _gmtime32_s, _gmtime64_s

localtime_s, _localtime32_s, _localtime64_s

mktime, _mktime32, _mktime64

time, _time32, _time64

_tzset