asctime_s, _wasctime_s
Konwertuj tm czas struktury na ciąg znaków.Funkcje te są wersje asctime, _wasctime z ulepszeń zabezpieczeń, zgodnie z opisem 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
[Brak] Wskaźnik do buforu do przechowywania wyników ciąg znaków.Ta funkcja zakłada wskaźnik do lokalizacji w pamięci ważne o wielkości określone przez numberOfElements.numberOfElements
[w] Rozmiar bufora używanego do przechowywania wyników._tm
[w] Data/Godzina struktury.Ta funkcja zakłada wskaźnik do ważnego structtm obiektu.
Wartość zwracana
0, jeśli kończy się pomyślnie.W przypadku awarii, obsługi nieprawidłowy parametr jest wywoływany, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli wykonanie może być kontynuowana, wartość zwracana jest kod błędu.Kody błędów są zdefiniowane w numer błędu.H.Aby uzyskać więcej informacji, zobacz errno — Stałe.W poniższej tabeli przedstawiono faktyczne kody błędów zwracane dla każdego warunku błędu.
Warunki błędów
buffer |
numberOfElements |
tm |
Zwrot |
Wartość wbuffer |
---|---|---|---|---|
NULL |
Wszelkie |
Wszelkie |
EINVAL |
Nie zmodyfikowano |
Nie NULL (wskazuje na prawidłową 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łowa godzina struktury lub wartości spoza zakresu dla składników czasu |
EINVAL |
Pusty ciąg znaków |
[!UWAGA]
Błąd warunki dotyczące wasctime_s są podobne do asctime_s z wyjątkiem tego, że limit rozmiaru jest mierzona w słowach.
Uwagi
asctime Funkcja konwertuje czas przechowywane jako struktura na ciąg znaków._tm Wartość jest zazwyczaj uzyskiwany w wyniku wywołania gmtime lub localtime.Obie funkcje może służyć do wypełnienia tm struktury, zgodnie z definicją w czasie.H.
Członek timeptr |
Wartość |
---|---|
tm_hour |
Godziny od północy (0-23) |
tm_isdst |
Dodatnia, jeśli zmiany czasu letniego obowiązuje; 0, jeśli zmiany czasu letniego nie jest włączone; ujemna, jeśli stan czasu letniego jest nieznany.Biblioteki wykonawczej C przyjmuje zasady wykonywania obliczeń czasu letniego (DST) Stanów Zjednoczonych. |
tm_mday |
Dzień miesiąca (1-31) |
tm_min |
Minut po godzinie (0-59) |
tm_mon |
Miesiąc (0-11; Styczeń = 0) |
tm_sec |
Sekund po minucie (0-59) |
tm_wday |
Dzień tygodnia (0-6; Niedziela = 0) |
tm_yday |
Dzień roku (0-365; 1 stycznia = 0) |
tm_year |
Rok (bieżącego roku minus 1900) |
Ciąg znaków konwertowanego jest również dostosowanie zgodnie z ustawieniami strefy czasu lokalnego.Zobacz time, _time32, _time64, _ftime, _ftime32, _ftime64, i localtime_s, _localtime32_s, _localtime64_s funkcji, aby uzyskać informacje o konfigurowaniu czasu lokalnego i _tzset funkcji, aby uzyskać informacje o definiowaniu środowiska strefy czasowej i zmienne globalne.
Wynik zastosowania ciągu produkowane przez asctime_s zawiera dokładnie 26 znaków i ma postać Wed Jan 02 02:03:55 1980\n\0.Wykorzystywany jest zegar 24-godzinny.Wszystkie pola są stałej szerokości.Znak nowego wiersza i znak null zajmują dwie ostatnie pozycje ciągu.Wartość przekazywana jako drugi parametr powinien być co najmniej to duży.Jeżeli jest mniej, kod błędu, EINVAL, zostaną zwrócone.
_wasctime_s to wersja znaków dwubajtowych asctime_s._wasctime_s i asctime_s zachowują się identycznie w innych przypadkach.
Tekst rodzajowy rutynowych mapowania
Procedura Tchar.h |
_UNICODE & _MBCS nie zdefiniowano |
_MBCS zdefiniowano |
_UNICODE zdefiniowany |
---|---|---|---|
_tasctime_s |
asctime_s |
asctime_s |
_wasctime_s |
W języku C++, korzystanie z tych funkcji jest uproszczone przez przeciążenia szablonu; przeciążenia mogą automatycznie wydedukować długość buforu, eliminując konieczność określenia argumentu rozmiaru.Aby uzyskać więcej informacji, zobacz Przeciążenia bezpiecznych szablonów.
Wymagania
Procedura |
Wymagany nagłówek |
---|---|
asctime_s |
<czas.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 wszystko, co znajduje się w lokalizacji.Może to również spowodować naruszenie zasad dostępu.
A przepełnienie buforu może wystąpić, jeśli przekazany argument rozmiar jest większy niż rzeczywisty rozmiar buforu.
Przykład
Ten program umieszcza czas systemowy w liczba całkowita długa aclock, przekłada się to na strukturę newtime i konwertuje ją na ciąg formularza dla wyjścia, za pomocą 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