ctime_s
, , _ctime32_s
, _ctime64_s
, _wctime_s
, , _wctime32_s
_wctime64_s
Przekonwertuj wartość czasu na ciąg i dostosuj ustawienia lokalnej strefy czasowej. Te funkcje to wersje programu ctime
, _ctime64
, _wctime64
_wctime
z ulepszeniami zabezpieczeń zgodnie z opisem w temacie Funkcje zabezpieczeń w narzędziu CRT.
Składnia
errno_t ctime_s(
char* buffer,
size_t numberOfElements,
const time_t *sourceTime
);
errno_t _ctime32_s(
char* buffer,
size_t numberOfElements,
const __time32_t *sourceTime
);
errno_t _ctime64_s(
char* buffer,
size_t numberOfElements,
const __time64_t *sourceTime )
;
errno_t _wctime_s(
wchar_t* buffer,
size_t numberOfElements,
const time_t *sourceTime
);
errno_t _wctime32_s(
wchar_t* buffer,
size_t numberOfElements,
const __time32_t *sourceTime
);
errno_t _wctime64_s(
wchar_t* buffer,
size_t numberOfElements,
const __time64_t *sourceTime
);
template <size_t size>
errno_t _ctime32_s(
char (&buffer)[size],
const __time32_t *sourceTime
); // C++ only
template <size_t size>
errno_t _ctime64_s(
char (&buffer)[size],
const __time64_t *sourceTime
); // C++ only
template <size_t size>
errno_t _wctime32_s(
wchar_t (&buffer)[size],
const __time32_t *sourceTime
); // C++ only
template <size_t size>
errno_t _wctime64_s(
wchar_t (&buffer)[size],
const __time64_t *sourceTime
); // C++ only
Parametry
buffer
Musi być wystarczająco duża, aby przechowywać 26 znaków. Wskaźnik do wyniku ciągu znaku lub NULL
jeśli:
sourceTime
reprezentuje datę przed północą, 1 stycznia 1970, UTC.Jeśli używasz
_ctime32_s
lub_wctime32_s
reprezentujeszsourceTime
datę po 23:59:59 stycznia 18, 2038, UTC.Jeśli używasz
_ctime64_s
wartości lub_wctime64_s
isourceTime
reprezentujesz datę po 23:59:59, 31 grudnia 3000 czasu UTC.Jeśli używasz
_ctime_s
funkcji lub_wctime_s
, te funkcje są otokami poprzednich funkcji. Zobacz sekcję Uwagi.
numberOfElements
Rozmiar buforu.
sourceTime
Wskaźnik do przechowywanego czasu.
Wartość zwracana
Zero, jeśli się powiedzie. Jeśli wystąpi błąd z powodu nieprawidłowego parametru, wywoływana jest nieprawidłowa procedura obsługi parametrów, zgodnie z opisem w artykule Weryfikacja parametru. Jeśli wykonywanie jest dozwolone do kontynuowania, zostanie zwrócony kod błędu. Kody błędów są zdefiniowane w błędzie ERRNO. H; aby uzyskać listę tych błędów, zobacz errno
. Rzeczywiste kody błędów zgłaszane dla każdego warunku błędu są wyświetlane w poniższej tabeli.
Warunki błędu
buffer |
numberOfElements |
sourceTime |
Powrót | Wartość w buffer |
---|---|---|---|---|
NULL |
dowolny | dowolny | EINVAL |
Nie zmodyfikowano |
Nie NULL (wskazuje prawidłową pamięć) |
0 | dowolny | EINVAL |
Nie zmodyfikowano |
Nie NULL |
0< rozmiar < 26 | dowolny | EINVAL |
Pusty ciąg |
Nie NULL |
>= 26 | NULL | EINVAL |
Pusty ciąg |
Nie NULL |
>= 26 | < 0 | EINVAL |
Pusty ciąg |
Uwagi
Funkcja ctime_s
konwertuje wartość czasu przechowywaną time_t
jako strukturę na ciąg znaków. Wartość sourceTime
jest zwykle uzyskiwana z wywołania metody time
, która zwraca liczbę sekund, które upłynęły od północy (00:00:00), 1 stycznia 1970 r. skoordynowany uniwersalny czas (UTC). Ciąg wartości zwracanej zawiera dokładnie 26 znaków i ma postać:
Wed Jan 2 02:03:55 1980\n\0
Jest używany zegar 24-godzinny. Wszystkie pola mają stałą szerokość. Nowy znak wiersza ('\n') i znak null ('\0') zajmują ostatnie dwa pozycje ciągu.
Przekonwertowany ciąg znaków jest również dostosowywany zgodnie z ustawieniami lokalnej strefy czasowej. Aby uzyskać informacje na temat konfigurowania czasu lokalnego, zobacz time
funkcje , _ftime
i localtime
. Aby uzyskać szczegółowe informacje na temat definiowania środowiska strefy czasowej i zmiennych globalnych, zobacz _tzset
funkcję .
_wctime32_s
i są wersją szerokoznakową _ctime32_s
i _ctime64_s
_wctime64_s
; zwraca wskaźnik do ciągu o szerokim znaku. W przeciwnym razie , _ctime64_s
_wctime32_s
i _wctime64_s
zachowuje się identycznie z _ctime32_s
.
ctime_s
jest funkcją śródliniową, która oblicza wartość _ctime64_s
i time_t
jest równoważna funkcji __time64_t
. Jeśli musisz wymusić, aby kompilator interpretował time_t
jako stary 32-bitowy time_t
element , możesz zdefiniować element _USE_32BIT_TIME_T
. To makro powoduje ctime_s
ocenę wartości ._ctime32_s
Nie zalecamy jej, ponieważ aplikacja może zakończyć się niepowodzeniem po 18 stycznia 2038 r. i nie jest dozwolona na platformach 64-bitowych.
W języku C++używanie tych funkcji jest uproszczone przez przeciążenia szablonu; przeciążenia mogą automatycznie wnioskować długość buforu, eliminując konieczność określenia argumentu rozmiaru. Aby uzyskać więcej informacji, zobacz Bezpieczne przeciążenia szablonów.
Wersje biblioteki debugowania tych funkcji najpierw wypełniają bufor 0xFE. Aby wyłączyć to zachowanie, użyj polecenia _CrtSetDebugFillThreshold
.
Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.
Mapowania procedur tekstu ogólnego
Procedura TCHAR.H | _UNICODE i _MBCS niezdefiniowane |
_MBCS zdefiniowany |
_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 |
<time.h> |
_wctime_s , , _wctime32_s _wctime64_s |
<time.h> lub <wchar.h> |
Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.
Biblioteki
Wszystkie wersje bibliotek czasu wykonywania języka 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 );
}
The time is Fri Apr 25 13:03:39 2003
Zobacz też
Zarządzanie czasem
asctime_s
, _wasctime_s
ctime
, , _ctime32
, _ctime64
, _wctime
, , _wctime32
_wctime64
_ftime
, , _ftime32
_ftime64
gmtime_s
, , _gmtime32_s
_gmtime64_s
localtime_s
, , _localtime32_s
_localtime64_s
time
, , _time32
_time64