Sdílet prostřednictvím


asctime_s _wasctime_s

Převést tm čas struktury řetězec znaků.Tyto funkce jsou verze asctime _wasctime s vylepšení zabezpečení popsaným v Funkce zabezpečení v CRT.

errno_t asctime_s( 
   char* buffer,
   size_t numberOfElements,
   const struct tm *_tm 
);
errno_t _wasctime_s( 
   wchar_t* buffer,
   size_t numberOfElements
   const struct tm *_tm 
);
template <size_t size>
errno_t asctime_s( 
   char (&buffer)[size],
   const struct tm *_tm 
); // C++ only
template <size_t size>
errno_t _wasctime_s( 
   wchar_t (&buffer)[size],
   const struct tm *_tm 
); // C++ only

Parametry

  • buffer
    [výstup] Ukazatel do vyrovnávací paměti ukládat výsledek řetězec znaků.Tato funkce předpokládá ukazatel na umístění v paměti platné s velikostí určenou numberOfElements.

  • numberOfElements
    [v] Velikost vyrovnávací paměti použité k ukládání výsledků.

  • _tm
    [v] Čas a datum struktury.Tato funkce předpokládá ukazatel na platný structtm objektu.

Vrácená hodnota

Nula, pokud je úspěšná.Pokud selhání je vyvoláno neplatný parametr popisovače, jak je popsáno v Ověření parametrů.Pokud je povoleno spuštění pokračovat, vrácená hodnota je kód chyby.Kódy chyb jsou definovány v kód chyby.H.Další informace naleznete v tématu Kód chyby konstanty.V následující tabulce jsou uvedeny kódy skutečné chyby vrácené pro každou podmínku chyby.

Chybové podmínky

buffer

numberOfElements

tm

Vrátit

Hodnota vbuffer

NULL

Žádné

Žádné

EINVAL

Nezměněno

NeníNULL (odkazuje na platný paměti)

0

Žádné

EINVAL

Nezměněno

NeníNULL

0 < velikost < 26

Žádné

EINVAL

Prázdný řetězec

NeníNULL

> = 26

NULL

EINVAL

Prázdný řetězec

NeníNULL

> = 26

Neplatný čas struktury nebo mimo rozsah hodnot pro součásti čas

EINVAL

Prázdný řetězec

[!POZNÁMKA]

Chyba podmínky pro wasctime_s jsou podobné asctime_s s výjimkou, že maximální velikost je měřena v slova.

Poznámky

asctime Funkce převede čas uloženy jako struktura na řetězec znaků._tm Hodnota je obvykle získán z volání gmtime nebo localtime.Obě funkce lze použít k vyplnění tm struktury definované v čase.H.

člen timeptr

Value

tm_hour

Hodin od půlnoci (0–23)

tm_isdst

Pozitivní, jestliže letní čas je v platnosti; 0, pokud není letního času v účinku; negativní, jestliže stav letního času neznámý.C Runtime library předpokládá Spojené státy prováděcí pravidla k výpočtu letní čas (DST).

tm_mday

Den v měsíci (1–31)

tm_min

Minut po hodině (0–59)

tm_mon

Měsíc (0–11; Ledna = 0)

tm_sec

Sekund po minutě (0–59)

tm_wday

Den v týdnu týdnu (0–6; Neděle = 0)

tm_yday

Den roku (0–365; Ledna = 0)

tm_year

Rok (aktuální rok minus 1900)

Řetězec znaků převedeného také upravena podle nastavení zóny Místní čas.Najdete time, _time32, _time64, _ftime, _ftime32, _ftime64, a localtime_s, _localtime32_s, _localtime64_s funkce informace o konfiguraci místního času a _tzset funkce informace o definování časové pásmo prostředí a globální proměnné.

Výsledek řetězce vyrobené asctime_s obsahuje přesně 26 znaků a má tvar Wed Jan 02 02:03:55 1980\n\0.Používá se 24 hodin.Všechna pole mají konstantní šířce.Znak nového řádku a znak null obsadit poslední dvě pozice řetězce.Jako druhý parametr předaný měla být hodnota alespoň tomto velký.Pokud je méně kód chyby EINVAL, budou vráceny.

_wasctime_sje verze celého znaku asctime_s._wasctime_sa asctime_s chovají jinak shodně.

Obecný Text rutinní mapování

TCHAR.Rutina H

_UNICODE & _MBCS není definován

_MBCS, definice

_UNICODE, definice

_tasctime_s

asctime_s

asctime_s

_wasctime_s

V jazyce C++ použití těchto funkcí je zjednodušeno díky šablony přetížení; přetížení lze odvodit vyrovnávací paměti automaticky, není tedy třeba zadat argument velikost.Další informace naleznete v tématu Přetížení šablony zabezpečení.

Požadavky

Rutina

Požadované záhlaví

asctime_s

<time.h>

_wasctime_s

<time.h> nebo <wchar.h>

Zabezpečení

Pokud ukazatel vyrovnávací paměti není NULL a ukazatel neodkazuje na platný vyrovnávací paměti, funkce přepíše jakékoli umístění je.Také to může způsobit narušení přístupu.

A přetečení vyrovnávací paměti může dojít, pokud předaný argument velikost je větší než skutečná velikost vyrovnávací paměti.

Příklad

Tento program umístí systémový čas dlouhé celé číslo aclock, převede jej do struktury newtime a převádí je řetězec formulář pro výstup, použití asctime_s funkce.

// crt_asctime_s.c
#include <time.h>
#include <stdio.h>

struct tm newtime;
__time32_t aclock;

int main( void )
{
   char buffer[32];
   errno_t errNum;
   _time32( &aclock );   // Get time in seconds.
   _localtime32_s( &newtime, &aclock );   // Convert time to struct tm form.

   // Print local time as a string.

   errNum = asctime_s(buffer, 32, &newtime);
   if (errNum)
   {
       printf("Error code: %d", (int)errNum);
       return 1;
   }
   printf( "Current date and time: %s", buffer );
   return 0;
}
  

Ekvivalent v rozhraní .NET Framework

Viz také

Referenční dokumentace

Aplikace Správa času

ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s

_ftime, _ftime32, _ftime64

gmtime_s, _gmtime32_s, _gmtime64_s

localtime_s, _localtime32_s, _localtime64_s

time, _time32, _time64

_tzset