Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Скопируйте текущую системную дату в буфер. Эти функции — это версии _strdate_wstrdateкак описано в функциях безопасности в CRT.
Синтаксис
errno_t _strdate_s(
char *buffer,
size_t size
);
errno_t _wstrdate_s(
wchar_t *buffer,
size_t size
);
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
Указатель на буфер, указывающий на форматированную строку даты.
size
Размер буфера в единицах символов.
Возвращаемое значение
Нуль при успешном завершении. Возвращаемое значение — это код ошибки, если произошел сбой. Коды ошибок определены в ERRNO. H; см. в таблице ниже точные ошибки, создаваемые этой функцией. Дополнительные сведения о кодах ошибок см. в статье errno.
Условия ошибок
buffer |
size |
Возврат | Содержимое buffer |
|---|---|---|---|
NULL |
(любые) | EINVAL |
Не изменено |
Не NULL (указывает на допустимый буфер) |
0 | EINVAL |
Не изменено |
Не NULL (указывает на допустимый буфер) |
0<size<9 |
EINVAL |
Пустая строка |
Не NULL (указывает на допустимый буфер) |
size
>= 9 |
0 | Текущая дата, отформатированная, как указано в разделе «Примечания» |
Проблемы с безопасностью
Если вы передаете недопустимое значение buffer, отличное от NULL, оно приводит к нарушению доступа, если size параметр больше девяти.
Передача значения больше size фактического размера результатов в переполнении буфера buffer .
Замечания
Эти функции представляют собой более безопасные версии _strdate и _wstrdate. Функция _strdate_s копирует текущую системную дату в буфер, на который указывает buffer. Он форматирован, где mm/dd/yy является двухзначный месяц, mm является двухзначным ddднем и yy является последними двумя цифрами года. Например, строка 12/05/99 представляет 5 декабря 1999 г. Буфер должен иметь по крайней мере девять символов.
_wstrdate_s — это версия с расширенными символами для _strdate_s; аргумент и возвращаемое значение _wstrdate_s являются строками с расширенными символами. В остальном эти функции ведут себя одинаково.
Если buffer указатель NULL или size меньше девяти символов, вызывается обработчик недопустимых параметров. Он описан в разделе "Проверка параметров". Если выполнение разрешено продолжать, эти функции возвращают значение -1. Они задают errno значение EINVAL , если буфер равен NULLsize 0 или меньше или равен 0. Или, если errnoERANGEsize значение меньше 9.
В C++использование этих функций упрощается перегрузками шаблонов. Перегрузки могут автоматически выводить длину буфера, что устраняет необходимость указания аргумента size . И они могут автоматически заменить небезопасные функции более новыми, более безопасными. Дополнительные сведения см. в разделе "Безопасные перегрузки шаблонов".
Версии библиотек отладки этих функций сначала заполняют буфер 0xFE. Чтобы отключить это поведение, используйте _CrtSetDebugFillThreshold.
По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.
Сопоставление подпрограмм универсального текста
| Подпрограмма 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.
См. также
Управление временем
asctime_s, _wasctime_s
ctime_s, , _ctime32_s_ctime64_s_wctime_s_wctime32_s,_wctime64_s
gmtime_s, , _gmtime32_s_gmtime64_s
localtime_s, , _localtime32_s_localtime64_s
mktime, , _mktime32_mktime64
time, , _time32_time64
_tzset