_strdate_s
, _wstrdate_s
현재 시스템 날짜를 버퍼에 복사합니다. 이러한 함수는 _strdate
버전, CRT 보안 기능에 설명된 것 처럼 보안 기능이 향상된 _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 |
반환 값 | 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
두 자리 월 dd
은 두 자리 날짜이며 yy
연도의 마지막 두 자리입니다. 예를 들어 12/05/99
문자열은 1999년 12월 5일을 나타냅니다. 버퍼의 길이는 9자 이상이어야 합니다.
_wstrdate_s
는 _strdate_s
의 와이드 문자 버전이고, _wstrdate_s
의 인수와 반환 값은 와이드 문자 문자열입니다. 그 외의 경우에는 이들 함수가 동일하게 작동합니다.
포인터이거나 NULL
size
9자 미만인 경우 buffer
잘못된 매개 변수 처리기가 호출됩니다. 매개 변수 유효성 검사에 설명되어 있습니다. 실행을 계속할 수 있는 경우 이러한 함수는 -1을 반환합니다. 버퍼가 0보다 작거나 같은 경우 size
로 설정합니다 errno
EINVAL
.NULL
또는 9보다 작은 경우 size
로 설정합니다.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