Udostępnij za pośrednictwem


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

Zarządzanie czasem

ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s

_ftime, _ftime32, _ftime64

gmtime_s, _gmtime32_s, _gmtime64_s

localtime_s, _localtime32_s, _localtime64_s

time, _time32, _time64

_tzset