다음을 통해 공유


_strtime_s, _wstrtime_s

버퍼에 현재 시간을 복사 합니다. CRT의 보안 기능에 설명된 대로 보안 향상 기능이 포함된 _strtime, _wstrtime 버전입니다.

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 Constants 를 참조하십시오.

오류 조건

buffer

numberOfElements

반환

buffer의 내용입니다.

NULL

모두

EINVAL

수정되지 않음

NULL 이 아닙니다.(유효한 버퍼에 대한 포인터)

0

EINVAL

수정되지 않음

NULL 이 아닙니다.(유효한 버퍼에 대한 포인터)

0 < size < 9

EINVAL

빈 문자열

NULL 이 아닙니다.(유효한 버퍼에 대한 포인터)

Size > 9

0

설명에 지정 된 형식인 현재 시간

보안 문제

numberOfElements 매개 변수가 9보다 큰 경우, 버퍼에 대해 NULL이 아닌 잘못된 값을 전달하는 것은 액세스 위반을 발생시킵니다.

버퍼의 실제 크기보다 큰 numberOfElements 에 대한 값의 전달은 버퍼 오버런을 발생시킵니다.

설명

이러한 함수는 _strtime 및 _wstrtime 의 보다 안전한 버전을 제공합니다. _strtime_s 함수는 현재 로캘시간을 timestr*.* 으로 지정된 버퍼에 복사합니다. 24시간 표기법에서 hh 이 두개의 숫자 표현으로 시간은 hh:mm:ss 로 서식이 지정되고, mm 와 ss 는 각각 시간다음에 지난 분과 초로 표현됩니다. 예를 들어, 문자열 18:23:44 는 23분 44초 지난 오후 6시를 나타냅니다. 버퍼는 최소 9바이트 이상이어야 합니다. 실제 크기는 두번째 매개 변수에 의해 지정 됩니다.

_wstrtime 는 _strtime 의 와이드 문자 버전입니다. _wstrtime 인수와 반환 값은 와이드 문자 문자열입니다. 그렇지 않다면 이러한 함수는 동일하게 작동합니다.

C++에서는 템플릿 오버로드로 인해 이러한 함수를 사용하는 것이 보다 간단해 집니다. 오버로드는 버퍼 길이를 자동으로 유추할 수 있으며(크기 인수를 지정할 필요가 없어짐), 기존의 비보안 함수를 보다 최신의 보안 대응 함수로 자동으로 바꿀 수 있습니다. 자세한 내용은 안전한 템플릿 오버로드을 참조하십시오.

제네릭 텍스트 라우팅 매핑:

TCHAR.H 루틴

_UNICODE 및 _MBCS 정의되지 않음

_MBCS 정의됨

_UNICODE 정의됨

_tstrtime_s

_strtime_s

_strtime_s

_wstrtime_s

요구 사항

루틴

필수 헤더

_strtime_s

<time.h>

_wstrtime_s

<time.h> or <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 항목

참고 항목

참조

시간 관리

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