ctime_s
, , _ctime32_s
_wctime_s
_ctime64_s
_wctime32_s
,_wctime64_s
Преобразуют значение времени в строку и настраивают его в соответствии с параметрами локального часового пояса. Эти функции — это версии ctime
, _wctime
_ctime64
с улучшениями безопасности, _wctime64
как описано в функциях безопасности в CRT.
Синтаксис
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
Параметры
buffer
Должен быть достаточно большим для хранения 26 символов. Указатель на результат строки символа или NULL
если:
sourceTime
представляет дату перед полуночью 1-го января 1970 года, в формате UTC.Если используется функция
_ctime32_s
или_wctime32_s
, аsourceTime
представляет дату после 23:59:59 18-го января 2038 года.Если используется функция
_ctime64_s
или_wctime64_s
иsourceTime
представляет дату после 23:59:59 31-го декабря 3000 года (в формате UTC).Если используются
_ctime_s
или_wctime_s
, эти функции служат оболочками для предыдущих функций. См. раздел «Примечания».
numberOfElements
Размер буфера.
sourceTime
Указатель на сохраненное время.
Возвращаемое значение
Нуль при успешном завершении. Если возникает сбой из-за недопустимого параметра, вызывается обработчик недопустимых параметров, как описано в разделе "Проверка параметров". Если продолжение выполнения разрешено, возвращается код ошибки. Коды ошибок определены в ERRNO. H; Список этих ошибок см. в разделе errno
. Фактические коды ошибок, отображаемые для каждого условия ошибки, представлены в следующей таблице.
Условия ошибок
buffer |
numberOfElements |
sourceTime |
Возврат | Значение в buffer |
---|---|---|---|---|
NULL |
любое | любое | EINVAL |
Не изменено |
Не NULL (указывает на допустимый адрес в памяти) |
0 | любое | EINVAL |
Не изменено |
Не NULL |
0< размер < 26 | любое | EINVAL |
Пустая строка |
Не NULL |
>= 26 | NULL | EINVAL |
Пустая строка |
Не NULL |
>= 26 | < 0 | EINVAL |
Пустая строка |
Замечания
Функция ctime_s
преобразует значение времени, хранящееся в виде time_t
структуры, в символьную строку. Значение sourceTime
обычно получается из вызова time
, которое возвращает количество секунд, истекшее с полуночи (00:00:00), 1 января 1970 года, согласованное универсальное время (UTC). Строка возвращаемого значения содержит ровно 26 символов и имеет следующий вид:
Wed Jan 2 02:03:55 1980\n\0
Время в 24-часовом формате. Все поля имеют постоянную ширину. Символ новой строки ("\n") и нуль-символ ("\0") занимают две последние позиции строки.
Преобразованная символьная строка также настраивается согласно параметрам местного часового пояса. Сведения о настройке локального времени см. в разделе time
, _ftime
и localtime
функции. Дополнительные сведения об определении среды часового пояса и глобальных переменных см. в _tzset
этой функции.
_wctime32_s
и _wctime64_s
— версии функций _ctime32_s
и _ctime64_s
для расширенных символов; возвращают указатель на строку из расширенных символов. В остальном поведение функций _ctime64_s
, _wctime32_s
и _wctime64_s
совпадает с поведением функции _ctime32_s
.
ctime_s
— встраиваемая функция, которая принимает значение _ctime64_s
, и time_t
эквивалентна __time64_t
. Если необходимо, чтобы компилятор принудительно интерпретировал time_t
как старое 32-разрядное значение time_t
, можно определить _USE_32BIT_TIME_T
. Этот макрос приводит ctime_s
к оценке _ctime32_s
. Мы не рекомендуем использовать его, так как приложение может завершиться сбоем после 18 января 2038 г. и не допускается на 64-разрядных платформах.
В C++ использование этих функций упрощено шаблонными перегрузками; перегрузки могут определить длину буфера автоматически, устраняя необходимость указывать аргумент size. Дополнительные сведения см. в разделе "Безопасные перегрузки шаблонов".
Версии библиотек отладки этих функций сначала заполняют буфер 0xFE. Чтобы отключить это поведение, используйте _CrtSetDebugFillThreshold
.
По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.
Сопоставления подпрограмм универсального текста
Подпрограмма TCHAR.H | _UNICODE и _MBCS не определен |
_MBCS Определенные |
_UNICODE Определенные |
---|---|---|---|
_tctime_s |
ctime_s |
ctime_s |
_wctime_s |
_tctime32_s |
_ctime32_s |
_ctime32_s |
_wctime32_s |
_tctime64_s |
_ctime64_s |
_ctime64_s |
_wctime64_s |
Требования
Маршрут | Обязательный заголовок |
---|---|
ctime_s , , _ctime32_s _ctime64_s |
<time.h> |
_wctime_s , , _wctime32_s _wctime64_s |
<time.h> или <wchar.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
Библиотеки
Все версии библиотек времени выполнения языка C.
Пример
// 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
См. также
Управление временем
asctime_s
, _wasctime_s
ctime
, , _ctime32
_wctime
_ctime64
_wctime32
,_wctime64
_ftime
, , _ftime32
_ftime64
gmtime_s
, , _gmtime32_s
_gmtime64_s
localtime_s
, , _localtime32_s
_localtime64_s
time
, , _time32
_time64