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
_wctime64
s 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_s
sourceTime
představuje datum po 23:59:59 18, 2038 UTC.Pokud používáte
_ctime64_s
nebo_wctime64_s
sourceTime
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 |
Zpět | 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
, _ftime
a 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_s
a _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 definovaný |
_UNICODE definovaný |
---|---|---|---|
_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( <ime );
err = _wctime_s( buf, SIZE, <ime );
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