_strtime_s, _wstrtime_s
Aktuální čas zkopírujte do vyrovnávací paměti.Jedná se o verze _strtime, _wstrtime s vylepšení zabezpečení, jak je popsáno v Funkce zabezpečení v CRT.
errno_t _strtime_s(
char *buffer,
size_t numberOfElements
);
errno_t _wstrtime_s(
wchar_t *buffer,
size_t numberOfElements
);
template <size_t size>
errno_t _strtime_s(
char (&buffer)[size]
); // C++ only
template <size_t size>
errno_t _wstrtime_s(
wchar_t (&buffer)[size]
); // C++ only
Parametry
[out] buffer
Vyrovnávací paměť, alespoň 10 bajtů, kam budou zapsána data čas.[in] numberOfElements
Velikost vyrovnávací paměti .
Vrácená hodnota
0 v případě úspěchu.
Pokud dojde k chybě, vyvolán neplatný parametr obslužné rutiny, jak je popsáno v Ověření parametru.Vrácená hodnota je kód chyby, pokud dojde k selhání.Kódy chyb jsou definovány v kód chyby.H; naleznete v následující tabulce pro přesné chyby generované touto funkcí.Další informace o chybových kódech naleznete v tématu Kód chyby konstanty.
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 < velikost < 9 |
EINVAL |
Prázdný řetězec |
Ne NULL (směřující do platné vyrovnávací paměti) |
Velikost > 9 |
0 |
Aktuální čas formátovaný podle poznámky |
Problémy se zabezpečením
Předáním neplatnou hodnotu než NULL Pokud způsobí narušení přístupu vyrovnávací paměti numberOfElements parametr je větší než 9.
Předáním hodnoty numberOfElements větší než skutečná velikost vyrovnávací paměti způsobí přetečení vyrovnávací paměti.
Poznámky
Tyto funkce poskytují bezpečnější verze _strtime a _wstrtime._strtime_s Funkce zkopíruje do vyrovnávací paměti, na kterou odkazuje aktuální místní čas timestr*.* Čas je formátováno jako hh:mm:ss kde hh je dvě číslice představuje hodiny v 24hodinovém formátu, mm je dvě číslice představující minut po celé hodině, a ss je dvě číslice představující sekund.Například řetězec 18:23:44 představuje 23 minut a 44 sekund posledních 6 hodin Vyrovnávací paměti musí být nejméně 9 bajtů; Skutečná velikost je určen druhý parametr.
_wstrtimeje verze širokého znaku _strtime; hodnota argumentu a návrat _wstrtime jsou řetězci širokého znaku.Tyto funkce se chovají jinak identicky.
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 |
---|---|---|---|
_tstrtime_s |
_strtime_s |
_strtime_s |
_wstrtime_s |
Požadavky
Rutina |
Požadované záhlaví |
---|---|
_strtime_s |
<time.h> |
_wstrtime_s |
<Time.h> nebo <wchar.h> |
Další informace o kompatibilitě naleznete v úvodu tématu Kompatibilita.
Příklad
// strtime_s.c
#include <time.h>
#include <stdio.h>
int main()
{
char tmpbuf[9];
errno_t err;
// Set time zone from TZ environment variable. If TZ is not set,
// the operating system is queried to obtain the default value
// for the variable.
//
_tzset();
// Display operating system-style date and time.
err = _strtime_s( tmpbuf, 9 );
if (err)
{
printf("_strdate_s failed due to an invalid argument.");
exit(1);
}
printf( "OS time:\t\t\t\t%s\n", tmpbuf );
err = _strdate_s( tmpbuf, 9 );
if (err)
{
printf("_strdate_s failed due to an invalid argument.");
exit(1);
}
printf( "OS date:\t\t\t\t%s\n", tmpbuf );
}
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