ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s
Konwertowanie wartości czasu na ciąg oraz dostosować ustawienia strefy czasu lokalnego.Są to wersje ctime, _ctime64, _wctime, _wctime64 z ulepszeń zabezpieczeń, zgodnie z opisem 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
[Brak] buffer
Musi być wystarczająco duża, aby pomieścić 26 znaków.Wskaźnik do wyniku ciąg znaków, lub NULL jeżeli:timereprezentuje daty wcześniejszej od północy 1 stycznia 1970 roku UTC.
Jeśli używasz _ctime32_s lub _wctime32_s i time reprezentuje datę po 03:14:07 19 stycznia 2038.
Jeśli używasz _ctime64_s lub _wctime64_s i time reprezentuje datę po 23:59:59, 31 grudnia 3000 UTC.
Jeśli używasz _ctime_s lub _wctime_s, funkcje te są otoki do poprzedniej funkcji.Zobacz sekcję Uwagi.
[w] numberOfElements
Rozmiar buforu.[w] time
Wskaźnik czasu przechowywaną.
Wartość zwracana
0, jeśli kończy się pomyślnie.W przypadku awarii z powodu nieprawidłowego parametru, obsługi nieprawidłowy parametr jest wywoływany, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli wykonanie może być kontynuowana, zwracany jest kod błędu.Kody błędów są zdefiniowane w numer błędu.H; Aby uzyskać listę tych błędów, zobacz errno.W poniższej tabeli przedstawiono faktyczne kody błędów generowane dla każdego warunku błędu.
Warunki błędów
buffer |
numberOfElements |
time |
Zwrot |
Wartość wbuffer |
---|---|---|---|---|
NULL |
jakakolwiek |
jakakolwiek |
EINVAL |
Nie zmodyfikowano |
Nie NULL (wskazuje na prawidłową pamięci) |
0 |
jakakolwiek |
EINVAL |
Nie zmodyfikowano |
NieNULL |
0< rozmiar < 26 |
jakakolwiek |
EINVAL |
Pusty ciąg znaków |
NieNULL |
>= 26 |
NULL |
EINVAL |
Pusty ciąg znaków |
NieNULL |
>= 26 |
< 0 |
EINVAL |
Pusty ciąg znaków |
Uwagi
ctime_s Funkcja konwertuje wartość godziny przechowywane jako time_t struktury na ciąg znaków.time Wartość jest zazwyczaj uzyskiwany w wyniku wywołania czas, która oblicza liczbę sekund, jaka upłynęła od północy (00:00), 1 stycznia 1970 r., skoordynowanego czasu uniwersalnego (UTC).Ciąg wartości zwracanej 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 (\n) i znak null (\0) zajmują dwie ostatnie pozycje ciągu.
Ciąg znaków konwertowanego jest również dostosowanie zgodnie z ustawieniami strefy czasu lokalnego.Zobacz time, _ftime, i localtime32_s funkcji, aby uzyskać informacje o konfigurowaniu czasu lokalnego i _tzset funkcji, aby uzyskać informacje o definiowaniu środowiska strefy czasowej i zmienne globalne.
_wctime32_si _wctime64_s są szeroko charakter wersji _ctime32_s i _ctime64_s; zwracając wskaźnik do wide znakowy ciąg.Otherwise, _ctime64_s, _wctime32_s, and _wctime64_s behave identically to _ctime32_s.
ctime_sjest funkcją wbudowaną, którego wynikiem jest _ctime64_s i time_t jest równoważne z __time64_t.Jeśli chcesz wymusić na kompilatorze interpretowania time_t jako stary 32-bitowych time_t, można zdefiniować _USE_32BIT_TIME_T.Spowoduje to, że takie postępowanie ctime_s do oceny do _ctime32_s.Nie jest to zalecane, ponieważ aplikacja może nie działać po 18 stycznia 2038 r., i nie jest dozwolona na platformach 64-bitowych.
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.
Rutynowe mapowania zwykłego tekstu
Procedura Tchar.h |
_UNICODE & _MBCS nie zdefiniowano |
_MBCS zdefiniowano |
_UNICODE zdefiniowany |
---|---|---|---|
_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
Procedura |
Wymagany nagłówek |
---|---|
ctime_s, _ctime32_s, _ctime64_s |
<czas.h> |
_wctime_s, _wctime32_s, _wctime64_s |
<Time.h> lub <wchar.h> |
Dodatkowe informacje o zgodności – zobacz: Zgodność we Wprowadzeniu.
Biblioteki
Wszystkie wersje Bibliotek uruchomieniowych 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