_strtime_s, _wstrtime_s
현재 시간을 버퍼에 복사 합니다.이러한 버전의 있습니다 _strtime, _wstrtime 와 보안 기능 향상에 설명 된 대로 CRT의 보안 기능.
errno_t _strtime_s(
char *buffer,
size_t numberOfElements
);
errno_t _wstrtime_s(
wchar_t *buffer,
size_t numberOfElements
);
template <size_t size>
errno_t _strtime_s(
char (&buffer)[size]
); // C++ only
template <size_t size>
errno_t _wstrtime_s(
wchar_t (&buffer)[size]
); // C++ only
매개 변수
[out] buffer
시간 작성 된 버퍼 적어도 10 바이트 길이가 있습니다.[in] numberOfElements
버퍼의 크기입니다.
반환 값
성공 하는 경우에 0입니다.
오류 조건이 발생 한 경우 잘못 된 매개 변수 처리기를의 설명에 따라 호출 됩니다 매개 변수 유효성 검사.실패 하면 반환 값은 오류 코드입니다.ERRNO의 오류 코드를 정의 합니다.H. 이 함수에 의해 생성 되는 정확한 오류에 대 한 다음 표를 참조 하십시오.오류 코드에 대 한 자세한 내용은 errno 상수.
오류 조건
buffer |
numberOfElements |
Return |
내용buffer |
---|---|---|---|
NULL |
(모든) |
EINVAL |
수정 되지 않음 |
않은 NULL (잘못 버퍼를 가리키는) |
0 |
EINVAL |
수정 되지 않음 |
않은 NULL (잘못 버퍼를 가리키는) |
0 < 크기 < 9 |
EINVAL |
빈 문자열 |
않은 NULL (잘못 버퍼를 가리키는) |
크기 > 9 |
0 |
설명에서 지정한 대로 서식이 현재 시간 |
보안 문제
경우 버퍼에 액세스 위반이 발생 합니다에 대 한 잘못 된 NULL이 아닌 값을 전달 하는 numberOfElements 매개 변수는 9 보다 큰 있습니다.
값을 전달 하는 numberOfElements 버퍼의 실제 크기에서 버퍼 오버런이 발생 합니다 이상입니다.
설명
이러한 함수를 더 안전한 버전을 제공 _strtime 및 _wstrtime._strtime_s 함수 포인터가 가리키는 버퍼에 현재 로컬 시간 복사 timestr*.* 시간으로 서식이 지정 된 hh:mm:ss 는 hh 24 시간 표기법으로 나타내는 두 자리 숫자입니다 mm 분 사이 나타내는 두 자리 숫자입니다 및 ss 시간 (초)을 나타내는 두 자리 숫자입니다.예를 들어, 18:23:44 나타내는 23 분 44 초 지 나 오후 6버퍼 길이 9 바이트 이상 이어야 합니다. 실제 크기는 두 번째 매개 변수로 지정 됩니다.
_wstrtime와이드 문자 버전입니다 _strtime. 인수와 반환 값을 _wstrtime 와이드 문자 문자열입니다.이러한 함수는 동일 하 게 그렇지 않으면 동작합니다.
C + +에서이 함수를 사용 하 여 템플릿 오버 로드에 단순화 됩니다. 오버 로드에서 버퍼 길이가 자동으로 유추할 수 있습니다 (size 인수를 지정할 필요가 없습니다) 및 해당 보안에서 이미지와 이전, 안전 하지 않은 함수가 자동으로 바꿀 수 있습니다.자세한 내용은 보안 템플릿 오버 로드를 참조하십시오.
일반 텍스트 루틴 매핑:
TCHAR입니다.H 루틴 |
_UNICODE 및 _Mbcs가 정의 되지 않았습니다. |
_Mbcs가 정의 |
_Unicode가 정의 |
---|---|---|---|
_tstrtime_s |
_strtime_s |
_strtime_s |
_wstrtime_s |
요구 사항
루틴 |
필수 헤더 |
---|---|
_strtime_s |
<time.h> |
_wstrtime_s |
<time.h> 또는 <wchar.h> |
추가 호환성 정보를 참조 하십시오. 호환성 소개에서 합니다.
예제
// strtime_s.c
#include <time.h>
#include <stdio.h>
int main()
{
char tmpbuf[9];
errno_t err;
// Set time zone from TZ environment variable. If TZ is not set,
// the operating system is queried to obtain the default value
// for the variable.
//
_tzset();
// Display operating system-style date and time.
err = _strtime_s( tmpbuf, 9 );
if (err)
{
printf("_strdate_s failed due to an invalid argument.");
exit(1);
}
printf( "OS time:\t\t\t\t%s\n", tmpbuf );
err = _strdate_s( tmpbuf, 9 );
if (err)
{
printf("_strdate_s failed due to an invalid argument.");
exit(1);
}
printf( "OS date:\t\t\t\t%s\n", tmpbuf );
}
해당 .NET Framework 항목
참고 항목
참조
ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s
gmtime_s, _gmtime32_s, _gmtime64_s