分享方式:


_strdate_s, _wstrdate_s

將目前的系統日期複製到緩衝區。 這些函式是 _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
以字元單位表示的緩衝區大小。

傳回值

如果成功,則為零。 如果失敗,傳回的值會是錯誤碼。 錯誤碼在 EERRNO.H 中定義,請參閱下表查看此函式產生的確切錯誤。 如需錯誤碼的詳細資訊,請參閱 errno

錯誤條件

buffer size 傳回 buffer 的內容。
NULL (任何) EINVAL 未修改
不是 NULL (指向有效的緩衝區) 0 EINVAL 未修改
不是 NULL (指向有效的緩衝區) 0 <size< 9 EINVAL 空字串
不是 NULL (指向有效的緩衝區) size>= 9 0 目前的日期格式一如<備註>所指定

安全性問題

如果您針對 傳入無效的非 NULL 值 buffer,則如果 size 參數大於九,則會導致存取違規。

傳遞的值 size 大於緩衝區滿溢中實際大小 buffer 的結果。

備註

這些函式提供 _strdate_wstrdate 的更安全版本。 函 _strdate_s 式會將目前的系統日期複製到 所指向的 buffer緩衝區。 其格式為 mm/dd/yy,其中 mm 是兩位數月份, dd 是兩位數的日期,而 yy 是年份的最後兩位數。 例如,字串 12/05/99 代表 1999 年 12 月 5 日。 緩衝區長度必須至少為九個字元。

_wstrdate_s_strdate_s 的寬字元版本,_wstrdate_s 的引數與傳回值是寬字元字串。 除此之外,這些函式的行為相同。

bufferNULL 指標或 size 少於九個字元時,會叫用無效的參數處理程式。 參數驗證中所述。 如果允許繼續執行,這些函式會傳回 -1。 如果緩衝區為 NULLsize 小於或等於 0,則設定errnoEINVAL為 。 或者,如果 size 小於 9,則設定errnoERANGE

在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