다음을 통해 공유


ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s_wctime64_s

시간 값을 문자열로 변환하고 현지 표준 시간대 설정에 맞게 조정합니다. 이러한 함수는 CRT_wctime_ctime64_wctime64ctime 보안 기능에 설명된 대로 향상된 보안 기능을 갖춘 버전입니다.

구문

errno_t ctime_s(
   char* buffer,
   size_t numberOfElements,
   const time_t *sourceTime
);
errno_t _ctime32_s(
   char* buffer,
   size_t numberOfElements,
   const __time32_t *sourceTime
);
errno_t _ctime64_s(
   char* buffer,
   size_t numberOfElements,
   const __time64_t *sourceTime )
;
errno_t _wctime_s(
   wchar_t* buffer,
   size_t numberOfElements,
   const time_t *sourceTime
);
errno_t _wctime32_s(
   wchar_t* buffer,
   size_t numberOfElements,
   const __time32_t *sourceTime
);
errno_t _wctime64_s(
   wchar_t* buffer,
   size_t numberOfElements,
   const __time64_t *sourceTime
);
template <size_t size>
errno_t _ctime32_s(
   char (&buffer)[size],
   const __time32_t *sourceTime
); // C++ only
template <size_t size>
errno_t _ctime64_s(
   char (&buffer)[size],
   const __time64_t *sourceTime
); // C++ only
template <size_t size>
errno_t _wctime32_s(
   wchar_t (&buffer)[size],
   const __time32_t *sourceTime
); // C++ only
template <size_t size>
errno_t _wctime64_s(
   wchar_t (&buffer)[size],
   const __time64_t *sourceTime
); // C++ only

매개 변수

buffer
26자를 포함할 만큼 충분히 커야 합니다. 문자열 결과에 대한 포인터이거나 NULL 다음과 같은 경우:

  • sourceTime은 1970년 1월 1일(UTC) 자정 이전의 날짜를 나타냅니다.

  • _ctime32_s 또는 _wctime32_s를 사용하는 경우 sourceTime은 2038년 1월 18일(UTC) 23:59:59 이후 날짜를 나타냅니다.

  • _ctime64_s 또는 _wctime64_s를 사용하는 경우 sourceTime은 3000년 12월 31일(UTC) 23:59:59 이후 날짜를 나타냅니다.

  • _ctime_s 또는 _wctime_s를 사용하는 경우 이러한 함수는 이전 함수에 대한 래퍼입니다. 주의 섹션을 참조하십시오.

numberOfElements
버퍼 크기입니다.

sourceTime
저장된 시간에 대한 포인터입니다.

반환 값

정상적으로 실행되는 경우 0입니다. 잘못된 매개 변수로 인해 오류가 발생하면 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기가 호출됩니다. 계속 실행하도록 허용된 경우 오류 코드가 반환됩니다. 오류 코드는 ERRNO에서 정의됩니다. H; 이러한 오류 목록은 다음을 참조하세요 errno. 각 오류 조건에 대해 throw되는 실제 오류 코드가 다음 표에 나와 있습니다.

오류 조건

buffer numberOfElements sourceTime 반환 값 buffer의 값
NULL any any EINVAL Not modified
NULL 아님(유효한 메모리를 가리킴) 0 any EINVAL Not modified
NULL 아님 0< 크기 < 26 any EINVAL 빈 문자열
NULL 아님 >= 26 NULL EINVAL 빈 문자열
NULL 아님 >= 26 < 0 EINVAL 빈 문자열

설명

이 함수는 ctime_s 구조체로 time_t 저장된 시간 값을 문자열로 변환합니다. 값은 sourceTime 일반적으로 자정(00:00:00), 1970년 1월 1일 UTC(협정 세계시) 이후 경과된 시간(초)을 반환하는 호출 time에서 가져옵니다. 반환 값 문자열은 정확히 26자를 포함하며 그 형식은 다음과 같습니다.

Wed Jan 2 02:03:55 1980\n\0

24시간제가 사용됩니다. 모든 필드에는 상수 너비가 있습니다. 줄 바꿈 문자('\n') 및 null 문자('\0')는 문자열의 마지막 두 자리를 차지합니다.

또한 변환된 문자열은 현지 표준 시간대 설정에 따라 조정됩니다. 현지 시간을 구성하는 방법에 대한 자세한 내용은 , _ftimelocaltime 함수를 참조time하세요. 표준 시간대 환경 및 전역 변수 정의에 대한 자세한 내용은 함수를 _tzset 참조하세요.

_wctime32_s_wctime64_s_ctime32_s_ctime64_s의 와이드 문자 버전이며, 와이드 문자 문자열에 대한 포인터를 반환합니다. 그 외에는 _ctime64_s, _wctime32_s_wctime64_s_ctime32_s과 동일하게 작동합니다.

ctime_s_ctime64_s로 계산되는 인라인 함수이며 time_t__time64_t와 동일합니다. 컴파일러에서 time_t 를 이전의 32비트 time_t로 해석하게 해야 하는 경우 _USE_32BIT_TIME_T를 정의할 수 있습니다. 이 매크로는 ctime_s 을 계산합니다 _ctime32_s. 2038년 1월 18일 이후에 애플리케이션이 실패할 수 있으며 64비트 플랫폼에서는 허용되지 않으므로 권장하지 않습니다.

C++에서는 템플릿 오버로드를 통해 이러한 함수를 사용하는 것이 더욱 간단해집니다. 오버로드는 버퍼 길이를 자동으로 유추할 수 있으므로 크기 인수를 지정할 필요가 없습니다. 자세한 내용은 안전한 템플릿 오버로드를 참조하세요.

이러한 함수의 디버그 라이브러리 버전은 먼저 버퍼를 0xFE 채웁니다. 이 동작을 사용하지 않도록 설정하려면 .를 사용합니다 _CrtSetDebugFillThreshold.

기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 이 동작을 변경하려면 CRT 전역 상태를 참조하세요.

일반 텍스트 루틴 매핑

TCHAR.H 루틴 _UNICODE_MBCS 정의되지 않음 정의된 _MBCS 정의된 _UNICODE
_tctime_s ctime_s ctime_s _wctime_s
_tctime32_s _ctime32_s _ctime32_s _wctime32_s
_tctime64_s _ctime64_s _ctime64_s _wctime64_s

요구 사항

루틴에서 반환된 값 필수 헤더
ctime_s, , _ctime32_s_ctime64_s <time.h>
_wctime_s, , _wctime32_s_wctime64_s <time.h> 또는 <wchar.h>

호환성에 대한 자세한 내용은 호환성을 참조하세요.

라이브러리

모든 버전의 C 런타임 라이브러리입니다.

예시

// crt_wctime_s.c
// This program gets the current
// time in time_t form and then uses _wctime_s to
// display the time in string form.

#include <time.h>
#include <stdio.h>

#define SIZE 26

int main( void )
{
   time_t ltime;
   wchar_t buf[SIZE];
   errno_t err;

   time( &ltime );

   err = _wctime_s( buf, SIZE, &ltime );
   if (err != 0)
   {
      printf("Invalid Arguments for _wctime_s. Error Code: %d\n", err);
   }
   wprintf_s( L"The time is %s\n", buf );
}
The time is Fri Apr 25 13:03:39 2003

참고 항목

시간 관리
asctime_s, _wasctime_s
ctime, _ctime32, _ctime64, _wctime, _wctime32_wctime64
_ftime, , _ftime32_ftime64
gmtime_s, , _gmtime32_s_gmtime64_s
localtime_s, , _localtime32_s_localtime64_s
time, , _time32_time64