_strdate_s, _wstrdate_s
Копирование текущей системной даты в буфер. Здесь представлены версии _strdate, _wstrdate с усовершенствованной безопасностью, как описано в разделе Функции безопасности в CRT.
errno_t _strdate_s(
char *buffer,
size_t numberOfElements
);
errno_t _wstrdate_s(
wchar_t *buffer,
size_t numberOfElements
);
template <size_t size>
errno_t _strdate_s(
char (&buffer)[size]
); // C++ only
template <size_t size>
errno_t _wstrdate_s(
wchar_t (&buffer)[size]
); // C++ only
Параметры
[исходящий] buffer
Указатель на буфер, который будет заполнен форматированной строкой даты.[входящий] numberOfElements
Размер буфера.
Возвращаемое значение
Ноль, если успешно. Возвращаемое значение — код ошибки в случае сбоя. Коды ошибок определенны в ERRNO.H; см. таблицу ниже для конкретных ошибок, создаваемых этой функцией. Дополнительные сведения о кодах ошибок см. в разделе errno.
Условия возникновения ошибки
buffer |
numberOfElements |
Return |
Содержимое buffer. |
---|---|---|---|
NULL |
(any) |
EINVAL |
Без изменений |
Не NULL (указывающий на допустимый буфер) |
0 |
EINVAL |
Без изменений |
Не NULL (указывающий на допустимый буфер) |
0 < numberOfElements < 9 |
EINVAL |
Пустая строка |
Не NULL (указывающий на допустимый буфер) |
numberOfElements >= 9 |
0 |
Текущая дата, отформатированная в соответствии с замечаниями |
Проблемы безопасности
Передача недопустимого отличного от NULL значения для буфера приведет к нарушению прав доступа, если параметр numberOfElements больше 9.
Передача для размера значения, превышающего фактический размер buffer, может привести к переполнению буфера.
Заметки
Эти функции предоставляют более безопасные версии _strdate и _wstrdate. Функция _strdate_s копирует текущую системную дату в буфер, указанный в buffer, в формате mm/dd/yy, где mm — две цифры, представляющее месяц, dd — две цифры, представляющие день, и yy — две цифры последние две цифры года. Например, строка 12/05/99 представляет 5-е декабря 1999. Буфер должен быть по крайней мере 9 знаков длиной.
_wstrdate_s — это двухбайтовая версия функции _strdate_s; аргумент и возвращаемое значение _wstrdate_s являются строками двухбайтовых символов. В остальном эти функции ведут себя идентично.
Если buffer указатель на NULL или если numberOfElements менее 9 символов, то вызывается обработчик недопустимого параметра, как описано в разделе Проверка параметров. Если продолжение выполнения разрешено, эти функции возвращают -1 и устанавливают errno в EINVAL, если буфер NULL или если numberOfElements меньше или равно 0, или устанавливают errno в ERANGE при numberOfElements меньше 9.
В C++ использование данных функций упрощено наличием шаблонных перегрузок; перегруженные методы могут автоматически определять длину буфера (что исключает необходимость указания аргумента с размером буфера), а также они могут автоматически заменять более старые, незащищенные функции их новыми безопасными аналогами. Дополнительные сведения см. в разделе Безопасные перегрузки шаблонов.
Универсальное текстовое сопоставление функций:
Подпрограмма TCHAR.H |
_UNICODE & _MBCS не определены |
_MBCS определено |
_UNICODE определено |
---|---|---|---|
_tstrdate_s |
_strdate_s |
_strdate_s |
_wstrdate_s |
Требования
Подпрограмма |
Обязательный заголовок |
---|---|
_strdate |
<time.h> |
_wstrdate |
<time.h> или <wchar.h> |
_strdate_s |
<time.h> |
Пример
См. пример для time.
Эквивалент в .NET Framework
См. также
Ссылки
ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s
gmtime_s, _gmtime32_s, _gmtime64_s