_strdate_s
, _wstrdate_s
現在のシステム日付をバッファーにコピーします。 これらの関数は、CRT の_strdate
_wstrdate
セキュリティ機能の説明に従ってセキュリティが強化されたバージョンの関数です。
構文
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
バッファーのサイズ (文字単位)。
戻り値
正常終了した場合は 0。 エラーが発生した場合、戻り値はエラー コードです。 エラー コードは ERRNO.H で定義されます。この関数によって生成される正確なエラーについては、下記の表をご覧ください。 エラー コードの詳細については、次を参照してください errno
。
エラー条件
buffer |
size |
Return | buffer の内容 |
---|---|---|---|
NULL |
(任意) | EINVAL |
Not modified |
NULL ではない (有効なバッファーを指す) |
0 | EINVAL |
Not modified |
NULL ではない (有効なバッファーを指す) |
0 <size < 9 |
EINVAL |
空の文字列 |
NULL ではない (有効なバッファーを指す) |
size >= 9 |
0 | コメントで指定されている書式設定の、現在の日付 |
セキュリティ上の問題
無効な NULL 以外の値 buffer
を渡すと、パラメーターが 9 より大きい場合 size
、アクセス違反が発生します。
実際のサイズbuffer
を超える値size
を渡すと、バッファー オーバーランが発生します。
解説
これらの関数には、セキュリティを強化したバージョンとして _strdate
および _wstrdate
があります。 この関数は _strdate_s
、現在のシステム日付を指すバッファーに buffer
コピーします。 mm/dd/yy
という形式になり、mm
は 2 桁の月、dd
は 2 桁の日、yy
は西暦年の下 2 桁です。 たとえば、文字列 12/05/99
は、1999 年 12 月 5 日を表します。 バッファーの長さは 9 文字以上である必要があります。
ワイド文字を扱う場合は、_wstrdate_s
ではなく _strdate_s
を使用します。_wstrdate_s
の場合、引数にはワイド文字列を指定します。また戻り値もワイド文字列です。 それ以外では、これらの関数の動作は同じです。
ポインターsize
または NULL
9 文字未満の場合buffer
は、無効なパラメーター ハンドラーが呼び出されます。 パラメーターの検証で説明されています。 実行の継続が許可された場合、これらの関数では -1 を返します。 バッファーNULL
が 0 以下の場合size
に設定errno
EINVAL
されます。 または、9 未満の場合size
にERANGE
設定errno
します。
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
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示