_strtime_s
, _wstrtime_s
Zkopírujte aktuální čas do vyrovnávací paměti. Tyto funkce jsou verze _strtime
, _wstrtime
s vylepšeními zabezpečení, jak je popsáno v funkcích zabezpečení v CRT.
Syntaxe
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
buffer
Vyrovnávací paměť, nejméně 10 bajtů dlouhá, kde se čas zapíše.
numberOfElements
Velikost vyrovnávací paměti.
Vrácená hodnota
Nula v případě úspěchu.
Pokud dojde k chybovému stavu, vyvolá se neplatná obslužná rutina parametru, jak je popsáno v ověření parametru. 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 najdete v tématu errno
konstanty.
Chybové podmínky
buffer |
numberOfElements |
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 < velikost < 9 | EINVAL |
Prázdný řetězec |
Ne NULL (odkazování na platnou vyrovnávací paměť) |
Velikost > 9 | 0 | Aktuální čas formátovaný podle poznámek |
Problémy se zabezpečením
Předání neplatné hodnoty proNULL
vyrovnávací paměť způsobí porušení přístupu, pokud numberOfElements
je parametr větší než 9.
Předání hodnoty větší numberOfElements
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
. Funkce _strtime_s
zkopíruje aktuální místní čas do vyrovnávací paměti, na kterou buffer
odkazuje . Čas je formátován jako hh:mm:ss , kde hh
jsou dvě číslice představující hodinu v zápisu za 24 hodin, mm
jsou dvě číslice představující minuty za hodinu a ss
představuje dvě číslice představující sekundy. Například řetězec 18:23:44 představuje 23 minut a 44 sekund po 6:00. Vyrovnávací paměť musí mít délku nejméně 9 bajtů; skutečná velikost je určena druhým parametrem.
_wstrtime_s
je verze širokého znaku _strtime_s
; argument a návratová _wstrtime_s
hodnota jsou řetězce širokých znaků. Tyto funkce se chovají stejně jinak.
V jazyce C++ je použití těchto funkcí zjednodušeno přetíženími šablon; přetížení mohou automaticky odvodit délku vyrovnávací paměti (eliminuje potřebu zadat argument velikosti) a mohou automaticky nahradit starší, nezabezpečené funkce jejich novějšími zabezpečený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ý |
---|---|---|---|
_tstrtime_s |
_strtime_s |
_strtime_s |
_wstrtime_s |
Požadavky
Rutina | Požadovaný hlavičkový soubor |
---|---|
_strtime_s |
<time.h> |
_wstrtime_s |
<time.h> nebo <wchar.h> |
Další informace o kompatibilitě najdete v 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 );
}
OS time: 14:37:49
OS date: 04/25/03
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