Sdílet prostřednictvím


_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

Aplikace 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