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
ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s
gmtime_s, _gmtime32_s, _gmtime64_s