ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s
Konwertowanie wartości czasu na ciąg znaków oraz dostosować ustawienia strefy czasu lokalnego.Są to wersje ctime, _ctime64, _wctime, _wctime64 z rozszerzeń zabezpieczeń opisane w Funkcje zabezpieczeń w CRT.
errno_t ctime_s(
char* buffer,
size_t numberOfElements,
const time_t *time
);
errno_t _ctime32_s(
char* buffer,
size_t numberOfElements,
const __time32_t *time
);
errno_t _ctime64_s(
char* buffer,
size_t numberOfElements,
const __time64_t *time )
;
errno_t _wctime_s(
wchar_t* buffer,
size_t numberOfElements,
const time_t *time
);
errno_t _wctime32_s(
wchar_t* buffer,
size_t numberOfElements,
const __time32_t *time
);
errno_t _wctime64_s(
wchar_t* buffer,
size_t numberOfElements,
const __time64_t *time
);
template <size_t size>
errno_t _ctime32_s(
char (&buffer)[size],
const __time32_t *time
); // C++ only
template <size_t size>
errno_t _ctime64_s(
char (&buffer)[size],
const __time64_t *time
); // C++ only
template <size_t size>
errno_t _wctime32_s(
wchar_t (&buffer)[size],
const __time32_t *time
); // C++ only
template <size_t size>
errno_t _wctime64_s(
wchar_t (&buffer)[size],
const __time64_t *time
); // C++ only
Parametry
[out]buffer
Musi być wystarczająco duży, aby pomieścić 26 znaków.Wskaźnik w wyniku ciąg znaków lub NULLjeżeli:timereprezentuje daty wcześniejszej od północy 1 stycznia 1970 roku UTC.
Jeśli korzystasz z _ctime32_s lub _wctime32_s i time reprezentuje datę po 03: 14: 07 19 stycznia 2038.
Jeśli korzystasz z _ctime64_s lub _wctime64_s i time reprezentuje datę po 23: 59: 59, 31 grudnia, 3000, UTC.
Jeśli korzystasz z _ctime_s lub _wctime_s, funkcje te są otok do poprzedniej funkcji.Zobacz sekcję Spostrzeżenia.
[w]numberOfElements
Rozmiar buforu.[w] time
Wskaźnik, aby czas przechowywane.
Wartość zwracana
Zero, jeśli kończy się pomyślnie.W przypadku awarii ze względu na nieprawidłowy parametr nieprawidłowy parametr wywoływana jest funkcja obsługi, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli wykonanie może kontynuować, zwracany jest kod błędu.Kody błędów są zdefiniowane w ERRNO.H; Aby uzyskać listę tych błędów, zobacz errno.Faktyczne kody błędów generowane dla każdego warunku błędu są pokazane w poniższej tabeli.
Warunki błędów
buffer |
numberOfElements |
time |
Zwrot |
Wartośćbuffer |
---|---|---|---|---|
NULL |
wszelkie |
wszelkie |
EINVAL |
Nie zmodyfikowano |
Nie NULL (wskazuje prawidłowy pamięci) |
0 |
wszelkie |
EINVAL |
Nie zmodyfikowano |
NieNULL |
0 < rozmiar < 26 |
wszelkie |
EINVAL |
Pusty ciąg znaków |
NieNULL |
> = 26 |
WARTOŚĆ NULL |
EINVAL |
Pusty ciąg znaków |
NieNULL |
> = 26 |
< 0 |
EINVAL |
Pusty ciąg znaków |
Uwagi
ctime_s Funkcja konwertuje wartość czas przechowywane jako time_t struktury na ciąg znaków.time Wartość uzyskuje się zwykle z wywołania czasu, która oblicza liczbę sekund, jaka upłynęła od północy (00: 00), 1 stycznia 1970 roku skoordynowanego czasu uniwersalnego (UTC).Zwracana wartość ciąg 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ść.Nowy znak wiersza (\n) i znak null (\0) zajmują ostatnie dwie pozycje w ciągu.
Ciąg znaków przekonwertowanych również jest korygowana według czasu lokalnego ustawienia strefy.Zobacz time, _ftime, i localtime32_s funkcje informacje na temat konfigurowania czasu lokalnego oraz _tzset funkcji, aby uzyskać informacje o definiowaniu środowiska strefę czasową i zmienne globalne.
_wctime32_si _wctime64_s wersji szerokich znaków są _ctime32_s i _ctime64_s; zwracanie wskaźnik do łańcuch szerokich znaków.Otherwise, _ctime64_s, _wctime32_s, and _wctime64_s behave identically to _ctime32_s.
ctime_sfunkcji śródwierszowej, którego wynikiem jest _ctime64_s i time_t jest równoważne z __time64_t.Jeśli trzeba wymusić na kompilatorze interpretowania time_t jako stary 32-bitowe time_t, można zdefiniować _USE_32BIT_TIME_T.Spowoduje to zaawansowana ctime_s do oceny do _ctime32_s.Nie jest to zalecane, ponieważ aplikacja może zakończyć się niepowodzeniem po 18 stycznia 2038, i nie jest dozwolone na platformach 64-bitowych.
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.
Tekst rodzajowy rutynowych mapowania
TCHAR.Rutynowe H |
_UNICODE & Nie zdefiniowano _MBCS |
_MBCS, definicja |
_UNICODE, definicja |
---|---|---|---|
_tctime_s |
ctime_s |
ctime_s |
_wctime_s |
_tctime32_s |
_ctime32_s |
_ctime32_s |
_wctime32_s |
_tctime64_s |
_ctime64_s |
_ctime64_s |
_wctime64_s |
Wymagania
Rozpoczęto wykonywanie procedury |
Wymaganego nagłówka |
---|---|
ctime_s, _ctime32_s, _ctime64_s |
<time.h> |
_wctime_s, _wctime32_s, _wctime64_s |
<time.h> lub <wchar.h> |
Aby uzyskać dodatkowe informacje o zgodności, zobacz zgodności we wprowadzeniu.
Biblioteki
Wszystkie wersje biblioteki uruchomieniowej c.
Przykład
// 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 );
}
Przykładowe dane wyjściowe
The time is Fri Apr 25 13:03:39 2003
Odpowiednik w programie .NET Framework
Zobacz też
Informacje
ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64
gmtime_s, _gmtime32_s, _gmtime64_s