다음을 통해 공유


asctime_s, _wasctime_s

tm 시간 구조를 문자 문자열로 변환합니다. 이 함수는 CRT의 보안 기능에 설명된 대로 보안 향상 기능이 포함된 asctime, _wasctime 버전입니다.

errno_t asctime_s( 
   char* buffer,
   size_t numberOfElements,
   const struct tm *_tm 
);
errno_t _wasctime_s( 
   wchar_t* buffer,
   size_t numberOfElements
   const struct tm *_tm 
);
template <size_t size>
errno_t asctime_s( 
   char (&buffer)[size],
   const struct tm *_tm 
); // C++ only
template <size_t size>
errno_t _wasctime_s( 
   wchar_t (&buffer)[size],
   const struct tm *_tm 
); // C++ only

매개 변수

  • buffer
    [out] 문자 문자열 결과를 저장 하는 버퍼에 대한 포인터입니다. 이 함수는 numberOfElements 가 지정한 크기를 사용하는 올바른 메모리 포인터를 가정합니다.

  • numberOfElements
    [in] 결과를 저장 하는 데 사용 되는 버퍼의 크기입니다.

  • _tm
    [in] 시간/날짜 구조체 이 함수는 유효한 struct tm 개체에 대해 포인터를 가정합니다.

반환 값

성공 하면 0이 됩니다. 검사에 실패할 경우 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기가 호출됩니다. 실행을 계속할 수 있는 경우 반환 값은 오류 코드입니다. 오류 코드는 ERRNO.H에서 정의 됩니다. 자세한 내용은 errno 상수을 참조하십시오. 각 오류 조건에 대해 반환 되는 실제 오류 코드는 다음 표에 나와 있습니다.

오류 조건

buffer

numberOfElements

tm

반환

buffer 의 값입니다.

NULL

임의

임의

EINVAL

수정 되지 않음

NULL 이 아닙니댜(유효한 메모리를 가르킵니다)

0

임의

EINVAL

수정 되지 않음

NULL이 아닙니다.

0< size < 26

임의

EINVAL

빈 문자열

NULL이 아닙니다.

>= 26

NULL

EINVAL

빈 문자열

NULL이 아닙니다.

>= 26

시간의 구성요소에 대해 잘못 된 시간 구조 또는 범위를 벗어난 값입니다.

EINVAL

빈 문자열

참고

wasctime_s 에 대한 오류 조건은 단어에서 크기 제약이 측정 되는 예외를 사용하는 asctime_s 와 유사합니다.

설명

asctime 함수는 구조체로 저장 된 시간을 문자 문자열로 변환합니다. _tm 값은 종종 gmtime 또는 localtime 를 호출함으로서 얻어집니다. TIME.H 에 정의된 두 함수는 tm 구조체를 작성하기 위해 사용 됩니다.

timeptr 멤버

tm_hour

Hours since midnight (0–23)

tm_isdst

양의 경우 일광 절약 시간제를 적용 합니다. 일광 절약 시간제가 효과가 없으면 0을 반환합니다. 일광 절약 시간을 알 수 없으면 음수를 반환합니다. C 런타임 라이브러리는 일광 절약 시간제(DST)의 계산을 실행하는데 미국의 규칙을 사용한다고 가정합니다.

tm_mday

Day of month (1–31)

tm_min

Minutes after hour (0–59)

tm_mon

Month (0–11; January = 0)

tm_sec

Seconds after minute (0–59)

tm_wday

Day of week (0–6; Sunday = 0)

tm_yday

Day of year (0–365; January 1 = 0)

tm_year

Year (current year minus 1900)

변환 된 문자열은 현지 표준 시간대 설정에 따라 조정할 수 있습니다. 현지 시간 구성에 대한 정보에 대한 time, _time32, _time64, _ftime, _ftime32, _ftime64, and localtime_s, _localtime32_s, _localtime64_s 함수와 시간대 환경 및 전역 변수를 정의하는 방법에 대한 정보에 대한 _tzset 함수를 참조하십시오.

asctime_s 가 생성한 문자 결과를 정확히 26문자를 포함하고 서식 Wed Jan 02 02:03:55 1980\n\0 을 가집니다. 24 시간제를 사용 합니다. 모든 필드 너비가 일정합니다. 줄 바꿈 문자 및 null 문자가 문자열의 마지막 두 자리를 차지 합니다. 두 번째 매개 변수로 전달 된 값이 최소한 커야 합니다. 적은 경우 , 오류 코드 EINVAL 가 반환됩니다.

_wasctime_sasctime_s 의 와이드 문자 버전입니다. _wasctime_sasctime_s 는 동일하게 작동합니다.

Generic-Text Routine Mapping

TCHAR.H 루틴

_UNICODE 및 _MBCS 정의되지 않음

_MBCS 정의됨

_UNICODE 정의됨

_tasctime_s

asctime_s

asctime_s

_wasctime_s

C++에서는 이러한 함수를 사용하는 것은 템플릿 오버로드에 의해 단순화됩니다; 오버로드는 자동으로 버퍼의 길이를 추정할수 있고, 크기 인수를 지정할 필요를 없앱니다. 자세한 내용은 안전한 템플릿 오버로드을 참조하십시오.

요구 사항

루틴

필수 헤더

asctime_s

<time.h>

_wasctime_s

<time.h> or <wchar.h>

보안

버퍼 포인터가 NULL 이 아니고 포인터가 유효한 버퍼를 가르키지 않는 경우, 함수는 위치가 어디든 덮어씁니다. 이 것은 또한 액세스 위반을 발생할 수 있습니다.

크기 인수가 실제 버퍼의 크기보다 큰 경우 buffer overrun 가 발생할 수 있습니다.

예제

이 프로그램은 asctime_s 함수를 사용하여 시스템 시간을 구조체 newtime 로 변환하고 출력에 대해 문자열 서식으로 변환하는 long 정수aclock에 배치 합니다.

// crt_asctime_s.c
#include <time.h>
#include <stdio.h>

struct tm newtime;
__time32_t aclock;

int main( void )
{
   char buffer[32];
   errno_t errNum;
   _time32( &aclock );   // Get time in seconds.
   _localtime32_s( &newtime, &aclock );   // Convert time to struct tm form.

   // Print local time as a string.

   errNum = asctime_s(buffer, 32, &newtime);
   if (errNum)
   {
       printf("Error code: %d", (int)errNum);
       return 1;
   }
   printf( "Current date and time: %s", buffer );
   return 0;
}
  

해당 .NET Framework 항목

참고 항목

참조

시간 관리

ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s

_ftime, _ftime32, _ftime64

gmtime_s, _gmtime32_s, _gmtime64_s

localtime_s, _localtime32_s, _localtime64_s

time, _time32, _time64

_tzset