Share via


ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s

Převede časovou hodnotu na řetězec a upraví nastavení místního časového pásma. Tyto funkce jsou verze ctime, _ctime64, _wctime_wctime64s vylepšeními zabezpečení, jak je popsáno v funkcích zabezpečení v CRT.

Syntaxe

errno_t ctime_s(
   char* buffer,
   size_t numberOfElements,
   const time_t *sourceTime
);
errno_t _ctime32_s(
   char* buffer,
   size_t numberOfElements,
   const __time32_t *sourceTime
);
errno_t _ctime64_s(
   char* buffer,
   size_t numberOfElements,
   const __time64_t *sourceTime )
;
errno_t _wctime_s(
   wchar_t* buffer,
   size_t numberOfElements,
   const time_t *sourceTime
);
errno_t _wctime32_s(
   wchar_t* buffer,
   size_t numberOfElements,
   const __time32_t *sourceTime
);
errno_t _wctime64_s(
   wchar_t* buffer,
   size_t numberOfElements,
   const __time64_t *sourceTime
);
template <size_t size>
errno_t _ctime32_s(
   char (&buffer)[size],
   const __time32_t *sourceTime
); // C++ only
template <size_t size>
errno_t _ctime64_s(
   char (&buffer)[size],
   const __time64_t *sourceTime
); // C++ only
template <size_t size>
errno_t _wctime32_s(
   wchar_t (&buffer)[size],
   const __time32_t *sourceTime
); // C++ only
template <size_t size>
errno_t _wctime64_s(
   wchar_t (&buffer)[size],
   const __time64_t *sourceTime
); // C++ only

Parametry

buffer
Musí být dostatečně velký, aby měl 26 znaků. Ukazatel na výsledek řetězce znaků, nebo NULL pokud:

  • sourceTime představuje datum před půlnocí, 1. ledna 1970, UTC.

  • Pokud použijete _ctime32_s nebo _wctime32_ssourceTime představuje datum po 23:59:59 18, 2038 UTC.

  • Pokud používáte _ctime64_s nebo _wctime64_ssourceTime představuje datum po 23:59:59, 31. prosince 3000, UTC.

  • Pokud používáte _ctime_s nebo _wctime_s, jsou tyto funkce obálky na předchozí funkce. Viz část Poznámky.

numberOfElements
Velikost vyrovnávací paměti.

sourceTime
Ukazatel na uložený čas.

Vrácená hodnota

Nula v případě úspěchu. Pokud dojde k selhání kvůli neplatnému parametru, vyvolá se neplatná obslužná rutina parametru, jak je popsáno v ověření parametru. Pokud je možné pokračovat spuštěním, vrátí se kód chyby. Kódychybch H; informace o výpisu těchto chyb naleznete v tématu errno. Skutečné kódy chyb vyvolané pro každou chybovou podmínku jsou uvedeny v následující tabulce.

Chybové podmínky

buffer numberOfElements sourceTime Vrácení Hodnota v buffer
NULL jakékoliv jakékoliv EINVAL Neupraveno
Not NULL (odkazuje na platnou paměť) 0 jakékoliv EINVAL Neupraveno
Ne NULL 0< velikost < 26 jakékoliv EINVAL Prázdný řetězec
Ne NULL >= 26 NULL EINVAL Prázdný řetězec
Ne NULL >= 26 < 0 EINVAL Prázdný řetězec

Poznámky

Funkce ctime_s převede časovou hodnotu uloženou time_t jako strukturu na řetězec znaků. Hodnota sourceTime se obvykle získá z volání time, který vrátí počet sekund uplynulých od půlnoci (00:00:00), 1. ledna 1970, koordinovaný univerzální čas (UTC). Vrácený řetězec hodnoty obsahuje přesně 26 znaků a má tvar:

Wed Jan 2 02:03:55 1980\n\0

Používá se 24hodinový formát. Všechna pole mají konstantní šířku. Nový znak řádku (\n) a znak null (\0) zabírají poslední dvě pozice řetězce.

Převedený řetězec znaků se také upraví podle nastavení místního časového pásma. Informace o konfiguraci místního času naleznete v tématu time, _ftimea localtime funkce. Podrobnosti o definování prostředí časového pásma a globálních proměnných najdete v _tzset této funkci.

_wctime32_s a _wctime64_s jsou verzí širokého znaku _ctime32_s a _ctime64_s; vrací ukazatel na řetězec širokého znaku. Jinak , _ctime64_s, _wctime32_sa _wctime64_s chovat se stejně jako _ctime32_s.

ctime_s je vložená funkce, která se vyhodnocuje _ctime64_s a time_t je ekvivalentní __time64_t. Pokud potřebujete vynutit, aby kompilátor interpretoval time_t jako starý 32bitový time_t, můžete definovat _USE_32BIT_TIME_T. Toto makro způsobí ctime_s , že se vyhodnotí jako _ctime32_s. Nedoporučujeme to, protože vaše aplikace může po 18. lednu 2038 selhat a není povolená na 64bitových platformách.

V jazyce C++ je použití těchto funkcí zjednodušeno přetíženími šablon; přetížení mohou odvodit délku vyrovnávací paměti automaticky, čímž eliminuje nutnost zadat argument velikosti. 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 Definovány _UNICODE Definovány
_tctime_s ctime_s ctime_s _wctime_s
_tctime32_s _ctime32_s _ctime32_s _wctime32_s
_tctime64_s _ctime64_s _ctime64_s _wctime64_s

Požadavky

Rutina Požadovaný hlavičkový soubor
ctime_s, _ctime32_s, _ctime64_s <time.h>
_wctime_s, _wctime32_s, _wctime64_s <time.h> nebo <wchar.h>

Další informace o kompatibilitě najdete v tématu Kompatibilita.

Knihovny

Všechny verze knihoven runtime jazyka C.

Příklad

// crt_wctime_s.c
// This program gets the current
// time in time_t form and then uses _wctime_s to
// display the time in string form.

#include <time.h>
#include <stdio.h>

#define SIZE 26

int main( void )
{
   time_t ltime;
   wchar_t buf[SIZE];
   errno_t err;

   time( &ltime );

   err = _wctime_s( buf, SIZE, &ltime );
   if (err != 0)
   {
      printf("Invalid Arguments for _wctime_s. Error Code: %d\n", err);
   }
   wprintf_s( L"The time is %s\n", buf );
}
The time is Fri Apr 25 13:03:39 2003

Viz také

Správa času
asctime_s, _wasctime_s
ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64
_ftime, _ftime32, _ftime64
gmtime_s, _gmtime32_s, _gmtime64_s
localtime_s, _localtime32_s, _localtime64_s
time, _time32, _time64