_strdate_s、_wstrdate_s_strdate_s, _wstrdate_s

現在のシステム日付をバッファーにコピーします。Copy the current system date to a buffer. これらは、「Security Features in the CRT」 (CRT のセキュリティ機能) の説明にあるとおり、セキュリティが強化されたバージョンの _strdate、_wstrdate です。These are versions of _strdate, _wstrdate with security enhancements as described in Security Features in the CRT.

構文Syntax

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

パラメーターParameters

バッファーbuffer
書式設定された日付文字列が格納されるバッファーへのポインター。A pointer to a buffer which will be filled in with the formatted date string.

numberOfElementsnumberOfElements
バッファーのサイズ。Size of the buffer.

戻り値Return Value

正常終了した場合は 0。Zero if successful. 障害が発生した場合、戻り値はエラー コードを示します。The return value is an error code if there is a failure. エラー コードは ERRNO.H で定義されます。この関数によって生成される正確なエラーについては、下記の表をご覧ください。Error codes are defined in ERRNO.H; see table below for the exact errors generated by this function. エラー コードの詳細については、「errno 定数」をご覧ください。For more information on error codes, see errno.

エラー条件Error Conditions

バッファーbuffer numberOfElementsnumberOfElements ReturnReturn 内容バッファーContents of buffer
NULLNULL (任意)(any) EINVALEINVAL 変更されないNot modified
いないNULL (有効なバッファーを指す)Not NULL (pointing to valid buffer) 00 EINVALEINVAL 変更されないNot modified
いないNULL (有効なバッファーを指す)Not NULL (pointing to valid buffer) 0 < numberOfElements < 90 < numberOfElements < 9 EINVALEINVAL 空の文字列Empty string
いないNULL (有効なバッファーを指す)Not NULL (pointing to valid buffer) numberOfElements > 9 を =numberOfElements >= 9 00 コメントで指定されている書式設定の、現在の日付Current date formatted as specified in the remarks

セキュリティ上の問題Security Issues

無効な非を渡してNULL値の場合、バッファーが、アクセス違反になるが、 numberOfElementsパラメーターが 9 よりも大きい。Passing in an invalid non NULL value for the buffer will result in an access violation if the numberOfElements parameter is greater than 9.

実際のサイズより大きいサイズの値を渡すことは、バッファーバッファー オーバーランが発生します。Passing values for size that is greater than the actual size of the buffer will result in buffer overrun.

RemarksRemarks

これらの関数のセキュリティを強化バージョンの提供 _strdate_wstrdateします。These functions provide more secure versions of _strdate and _wstrdate. _Strdate_s関数では、現在のシステム日付が指すバッファーにコピーバッファー、書式設定されたmm/dd / yyここで、 mm 、月を表す 2 桁の数字は、 ddは、日付を表す 2 桁の数字とyy西暦の最後の 2 つの桁が。The _strdate_s function copies the current system date to the buffer pointed to by buffer, formatted mm/dd/yy, where mm is two digits representing the month, dd is two digits representing the day, and yy is the last two digits of the year. たとえば、文字列9905/12/ 1999 年 12 月 5 日を表します。For example, the string 12/05/99 represents December 5, 1999. バッファーの長さは 9 文字以上でなければなりません。The buffer must be at least 9 characters long.

_wstrdate_sのワイド文字バージョンは、 _strdate_s; の引数と戻り値 _wstrdate_sはワイド文字列です。_wstrdate_s is a wide-character version of _strdate_s; the argument and return value of _wstrdate_s are wide-character strings. それ以外では、これらの関数の動作は同じです。These functions behave identically otherwise.

場合バッファーは、 NULLポインター、またはnumberOfElements 9 文字未満で説明されているとおり、無効なパラメーター ハンドラーが呼び出されますパラメーターの検証です。If buffer is a NULL pointer, or if numberOfElements is less than 9 characters, the invalid parameter handler is invoked, as described in Parameter Validation. 実行の継続が許可された場合、これらの関数は-1 を返し設定とerrnoEINVALバッファーが場合NULL場合numberOfElementsが 0、またはセットに小さいerrnoERANGE場合numberOfElementsが 9 より小さいです。If execution is allowed to continue, these functions return -1 and set errno to EINVAL if the buffer is NULL or if numberOfElements is less than or equal to 0, or set errno to ERANGE if numberOfElements is less than 9.

C++ では、これらの関数の使用はテンプレートのオーバーロードによって簡素化されます。オーバーロードでは、バッファー長を自動的に推論できる (サイズの引数を指定する必要がなくなる) だけでなく、古くてセキュリティが万全ではない関数を新しく安全な関数に自動的に置き換えることができます。In C++, using these functions is simplified by template overloads; the overloads can infer buffer length automatically (eliminating the need to specify a size argument) and they can automatically replace older, non-secure functions with their newer, secure counterparts. 詳細については、「 Secure Template Overloads」を参照してください。For more information, see Secure Template Overloads.

汎用テキスト ルーチンのマップGeneric-Text Routine Mapping:

TCHAR.H のルーチンTCHAR.H routine _UNICODE および _MBCS が未定義の場合_UNICODE & _MBCS not defined _MBCS が定義されている場合_MBCS defined _UNICODE が定義されている場合_UNICODE defined
_tstrdate_s_tstrdate_s _strdate_s_strdate_s _strdate_s_strdate_s _wstrdate_s_wstrdate_s

必要条件Requirements

ルーチンによって返される値Routine 必須ヘッダーRequired header
_strdate_strdate <time.h><time.h>
_wstrdate_wstrdate <time.h> または <wchar.h><time.h> or <wchar.h>
_strdate_s_strdate_s <time.h><time.h>

Example

time の例を参照してください。See the example for time.

関連項目See also

時間管理Time Management
asctime_s、_wasctime_sasctime_s, _wasctime_s
ctime_s、_ctime32_s、_ctime64_s、_wctime_s、_wctime32_s、_wctime64_sctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s
gmtime_s、_gmtime32_s、_gmtime64_sgmtime_s, _gmtime32_s, _gmtime64_s
localtime_s、_localtime32_s、_localtime64_slocaltime_s, _localtime32_s, _localtime64_s
mktime、_mktime32、_mktime64mktime, _mktime32, _mktime64
time、_time32、_time64time, _time32, _time64
_tzset_tzset