_strdate_s
, _wstrdate_s
Zkopírujte aktuální systémové datum do vyrovnávací paměti. Tyto funkce jsou verze _strdate
, _wstrdate
s vylepšeními zabezpečení, jak je popsáno v funkcích zabezpečení v CRT.
Syntaxe
errno_t _strdate_s(
char *buffer,
size_t size
);
errno_t _wstrdate_s(
wchar_t *buffer,
size_t size
);
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
buffer
Ukazatel na vyrovnávací paměť pro vložení formátovaného řetězce kalendářního data.
size
Velikost vyrovnávací paměti v jednotkách znaků.
Vrácená hodnota
Nula v případě úspěchu. Vrácená hodnota je kód chyby, pokud dojde k selhání. Kódychybch H; Přesné chyby vygenerované touto funkcí najdete v následující tabulce. Další informace o kódech chyb naleznete v tématu errno
.
Chybové podmínky
buffer |
size |
Zpět | Obsah buffer |
---|---|---|---|
NULL |
(jakýkoli) | EINVAL |
Neupraveno |
Ne NULL (odkazování na platnou vyrovnávací paměť) |
0 | EINVAL |
Neupraveno |
Ne NULL (odkazování na platnou vyrovnávací paměť) |
0 <size < 9 |
EINVAL |
Prázdný řetězec |
Ne NULL (odkazování na platnou vyrovnávací paměť) |
size >= 9 |
0 | Aktuální datum formátované podle poznámek |
Problémy se zabezpečením
Pokud předáte neplatnou hodnotu non-NULL pro buffer
, výsledkem je porušení přístupu, pokud size
je parametr větší než devět.
Předání hodnoty větší size
než skutečná velikost buffer
výsledků přetečení vyrovnávací paměti.
Poznámky
Tyto funkce poskytují bezpečnější verze _strdate
a _wstrdate
. Funkce _strdate_s
zkopíruje aktuální systémové datum do vyrovnávací paměti, na kterou buffer
odkazuje . Je formátovaný mm/dd/yy
, kde mm
je dvouciferný měsíc, dd
je dvouciferný den a yy
je poslední dvě číslice v roce. Například řetězec 12/05/99
představuje 5. prosince 1999. Vyrovnávací paměť musí mít alespoň devět znaků.
_wstrdate_s
je verze širokého znaku _strdate_s
; argument a návratová _wstrdate_s
hodnota jsou řetězce širokých znaků. Tyto funkce se chovají stejně jinak.
Pokud buffer
je NULL
ukazatel nebo size
je menší než devět znaků, vyvolá se neplatná obslužná rutina parametru. Popisuje se v ověření parametru. Pokud je provádění povoleno pokračovat, vrátí tyto funkce hodnotu -1. errno
Nastaví, EINVAL
jestli je NULL
vyrovnávací paměť menší size
nebo rovna 0. Nebo nastaví errno
ERANGE
, jestli size
je menší než 9.
V jazyce C++ je použití těchto funkcí zjednodušené přetíženími šablony. Přetížení mohou odvodit délku vyrovnávací paměti automaticky, což eliminuje potřebu zadat size
argument. A můžou automaticky nahradit nezabezpečenější funkce novějšími a bezpečnějšími protějšky. Další informace naleznete v tématu Přetížení šablon zabezpečení.
Verze knihovny ladění těchto funkcí nejprve vyplní vyrovnávací paměť 0xFE. Chcete-li toto chování zakázat, použijte _CrtSetDebugFillThreshold
.
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ý |
---|---|---|---|
_tstrdate_s |
_strdate_s |
_strdate_s |
_wstrdate_s |
Požadavky
Rutina | Požadovaný hlavičkový soubor |
---|---|
_strdate |
<time.h> |
_wstrdate |
<time.h> nebo <wchar.h> |
_strdate_s |
<time.h> |
Příklad
Podívejte se na příklad pro time
.
Viz také
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