_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
Viz také
Referenční dokumentace
ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s
gmtime_s, _gmtime32_s, _gmtime64_s