_strtime_s _wstrtime_s
Kopírovat aktuální čas do vyrovnávací paměti.Tyto verze jsou _strtime, _wstrtime s vylepšení zabezpečení popsaným 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
[výstup]buffer
Vyrovnávací paměť, nejméně 10 bajtů, kde bude zapsán čas.[v]numberOfElements
Velikost vyrovnávací paměti.
Vrácená hodnota
Nula, pokud je úspěšná.
Pokud dojde k chybě, je vyvolána neplatný parametr popisovače, jak je popsáno v Ověření parametrů.Vrácená hodnota je kód chyby, pokud nedošlo k selhání.Kódy chyb jsou definovány v kód chyby.H; viz následující tabulka přesné chyby generované tuto funkci.Další informace o chybových kódech naleznete v tématu kód chyby konstanty.
Chybové podmínky
buffer |
numberOfElements |
Vrátit |
Obsahbuffer |
---|---|---|---|
NULL |
(žádné) |
EINVAL |
Nezměněno |
Není NULL (směřující k platné vyrovnávací paměti) |
0 |
EINVAL |
Nezměněno |
Není NULL (směřující k platné vyrovnávací paměti) |
0 < velikost < 9 |
EINVAL |
Prázdný řetězec |
Není NULL (směřující k 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 v neplatnou hodnotu než NULL pro vyrovnávací paměti způsobí narušení přístupu Pokud 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 poskytuje bezpečnější verzí _strtime a _wstrtime._strtime_s Funkce kopíruje do vyrovnávací paměti, na kterou odkazuje aktuální místní čas timestr*.* Čas je formátována jako hh:mm:ss kde hh dvě číslice představující hodinu v 24hodinovém zápisu je 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 za 6 hodinVyrovnávací paměti musí být nejméně 9 bajtů; druhý parametr je určen skutečné velikosti.
_wstrtimeje verze celého znaku _strtime; hodnota argumentu a návrat _wstrtime jsou celý znak řetězce.Tyto funkce chovat stejně jinak.
V jazyce C++ použití těchto funkcí je zjednodušeno díky šablony přetížení; přetížení automaticky odvodit vyrovnávací paměti (není tak nutné zadat argument velikost) a jsou automaticky nahradit starší, -secure funkce s jejich protějšky novější, zabezpečené.Další informace naleznete v tématu Přetížení šablony zabezpečení.
Obecný Text rutinní mapování:
TCHAR.Rutina H |
_UNICODE & _MBCS není definován |
_MBCS, definice |
_UNICODE, definice |
---|---|---|---|
_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ě, viz Compatibility v úvodu.
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