_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 | コメントで指定されている書式設定の、現在の日付 |
セキュリティ上の問題
buffer
に無効な NULL 以外の値を渡すと、size
パラメーターが 9 より大きい場合、アクセス違反が発生します。
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
の場合、引数にはワイド文字列を指定します。また戻り値もワイド文字列です。 それ以外では、これらの関数の動作は同じです。
buffer
がNULL
ポインターであるか、size
が 9 文字未満の場合、無効なパラメーター ハンドラーが呼び出されます。 詳細については、 パラメーターの検証を参照してください。 実行の継続が許可された場合、これらの関数では -1 を返します。 バッファーがNULL
の場合、またはsize
が 0 以下の場合は、errno
をEINVAL
に設定します。 または、size
が 9 未満の場合、errno
を ERANGE
に設定します。
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