_strtime_s, _wstrtime_s

 

Visual Studio 2017 에 대한 최신 설명서는 Visual Studio 2017 설명서를 참조하세요.

버퍼에 현재 시간을 복사 합니다. 이 버전의 _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 바이트 long, 시간 쓸 위치입니다.

[in] numberOfElements
버퍼의 크기입니다.

성공 하면&0;입니다.

에 설명 된 대로 잘못 된 매개 변수 처리기가 호출 오류 조건이 발생 하면 매개 변수 유효성 검사합니다. 반환 값은 오류가 발생 하는 경우 오류 코드는 합니다. 오류 코드는 ERRNO에 정의 됩니다. H. 이 함수에 의해 발생 하는 정확한 오류는 다음 표를 참조 하십시오. 오류 코드에 대 한 자세한 내용은 참조 하십시오. errno 상수합니다.

오류 조건

buffernumberOfElements반환buffer의 내용
NULL(any)EINVAL수정 안 됨
하지 NULL (유효한 버퍼 가리킴)0EINVAL수정 안 됨
하지 NULL (유효한 버퍼 가리킴)0< size="">< 9></ 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++에서는 템플릿 오버로드로 인해 이러한 함수를 사용하는 것이 보다 간단해 집니다. 오버로드는 버퍼 길이를 자동으로 유추할 수 있으며(크기 인수를 지정할 필요가 없어짐), 기존의 비보안 함수를 보다 최신의 보안 대응 함수로 자동으로 바꿀 수 있습니다. 자세한 내용은 Secure Template Overloads을 참조하세요.

제네릭 텍스트 루틴 매핑:

TCHAR.H 루틴_UNICODE 및 _MBCS 정의되지 않음_MBCS 정의됨_UNICODE 정의됨
_tstrtime_s_strtime_s_strtime_s_wstrtime_s
루틴필수 헤더
_strtime_s<time.h>
_wstrtime_s<time.h>또는<wchar.h></wchar.h></time.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 );  
  
}  

OS time:            14:37:49  
OS date:            04/25/03  

시간 관리
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

표시: