asctime_s, _wasctime_s
Konwertuj tm czasu strukturę, aby ciąg znaków.Funkcje te są wersje asctime, _wasctime z rozszerzeń zabezpieczeń opisane w Funkcje zabezpieczeń w 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
[out] Wskaźnik do buforu do przechowywania w wyniku ciąg znaków.Ta funkcja zakłada wskaźnik do lokalizacji w pamięci ważne o rozmiarze określonym przez numberOfElements.numberOfElements
[w] Rozmiar bufora używanego do przechowywania wyników._tm
[w] Data/Godzina struktury.Ta funkcja zakłada wskaźnik do prawidłowego structtm obiektu.
Wartość zwracana
Zero, jeśli kończy się pomyślnie.W przypadku awarii, nieprawidłowy parametr wywoływana jest funkcja obsługi, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli wykonanie może kontynuować, zwracaną wartością jest kod błędu.Kody błędów są zdefiniowane w ERRNO.H.Aby uzyskać więcej informacji, zobacz errno stałych.Faktyczne kody błędów zwracane dla każdego warunku błędu są pokazane w poniższej tabeli.
Warunki błędów
buffer |
numberOfElements |
tm |
Zwrot |
Wartośćbuffer |
---|---|---|---|---|
NULL |
Wszelkie |
Wszelkie |
EINVAL |
Nie zmodyfikowano |
NieNULL (wskazuje prawidłowy pamięci) |
0 |
Wszelkie |
EINVAL |
Nie zmodyfikowano |
NieNULL |
0 < rozmiar < 26 |
Wszelkie |
EINVAL |
Pusty ciąg znaków |
NieNULL |
> = 26 |
NULL |
EINVAL |
Pusty ciąg znaków |
NieNULL |
> = 26 |
Nieprawidłowy czas struktury lub zakres wartości dla składników czasu |
EINVAL |
Pusty ciąg znaków |
[!UWAGA]
Błąd warunki dla wasctime_s są podobne do asctime_s z wyjątkiem, że limit rozmiaru jest mierzona w słowach.
Uwagi
asctime Funkcja konwertuje czas przechowywane w postaci struktury do ciągu znaków._tm Wartość uzyskuje się zwykle z wywołania gmtime lub localtime.Obie funkcje może być użyta do wypełnienia tm struktury, jak określono w czasie.H.
timeptr Członkowskich |
Wartość |
---|---|
tm_hour |
Godziny od północy (godziny) |
tm_isdst |
Dodatnie, jeśli zmiany czasu letniego obowiązujące; 0, jeśli zmiany czasu letniego, nie jest skuteczne; ujemne, jeśli stan czasu letniego jest nieznany.Biblioteka uruchomieniowa c przyjmuje zasady wykonywania obliczeń czasu letniego (DST) Stanów Zjednoczonych. |
tm_mday |
Dzień miesiąca (1-31) |
tm_min |
Minut po godzinie (00-59) |
tm_mon |
Miesiąc (0–11; Stycznia = 0) |
tm_sec |
Sekund po minuty (00-59) |
tm_wday |
Dzień tygodnia (0; Niedziela = 0) |
tm_yday |
Dzień roku (0–365; 1 Stycznia = 0) |
tm_year |
Rok (bieżącego roku minus 1900) |
Ciąg znaków przekonwertowanych również jest korygowana według czasu lokalnego ustawienia strefy.Zobacz time, _time32, _time64, _ftime, _ftime32, _ftime64, i localtime_s, _localtime32_s, _localtime64_s funkcje informacje na temat konfigurowania czasu lokalnego oraz _tzset funkcji, aby uzyskać informacje o definiowaniu środowiska strefę czasową i zmienne globalne.
String result produkowane przez asctime_s zawiera dokładnie 26 znaków i ma postać Wed Jan 02 02:03:55 1980\n\0.24-Godzinnym jest używany.Wszystkie pola mają stałą szerokość.Znak nowego wiersza i znak null zajmują ostatnie dwie pozycje w ciągu.Wartość przekazywana jako drugi parametr powinny być przynajmniej tym duży.Jeżeli jest mniej, kod błędu EINVAL, zostaną zwrócone.
_wasctime_sjest to wersja szerokich znaków asctime_s._wasctime_si asctime_s zachowują się identycznie inaczej.
Tekst rodzajowy rutynowych mapowania
TCHAR.Rutynowe H |
_UNICODE & Nie zdefiniowano _MBCS |
_MBCS, definicja |
_UNICODE, definicja |
---|---|---|---|
_tasctime_s |
asctime_s |
asctime_s |
_wasctime_s |
W języku C++ korzystając z tych funkcji jest uproszczona poprzez overloads szablonu; overloads można wywnioskować strony długość buforu automatycznie, eliminując konieczność należy określić argument rozmiar.Aby uzyskać więcej informacji, zobacz Secure, szablon Overloads.
Wymagania
Rozpoczęto wykonywanie procedury |
Wymaganego nagłówka |
---|---|
asctime_s |
<time.h> |
_wasctime_s |
<time.h> lub <wchar.h> |
Zabezpieczenia
Jeśli wskaźnik bufor nie jest NULL i wskaźnik nie wskazuje nieprawidłowy bufor, funkcja spowoduje zastąpienie, niezależnie od lokalizacji jest.Można to również spowodować naruszenie zasad dostępu.
A związanej z przepełnieniem buforu może wystąpić, jeśli argument rozmiar przekazany jest większa niż rzeczywisty rozmiar buforu.
Przykład
Ten program umieszcza czas systemowy w long integer aclock, przekłada struktury newtime i konwertuje ją do postaci ciągu dla wyjściowych, przy użyciu asctime_s funkcji.
// 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;
}
Odpowiednik w programie .NET Framework
Zobacz też
Informacje
ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s
gmtime_s, _gmtime32_s, _gmtime64_s