asctime_s, _wasctime_s
변환 된 tm 시간 구조에 문자열입니다.이러한 함수 버전입니다 asctime, _wasctime 와 보안 기능 향상에 설명 된 대로 CRT의 보안 기능.
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] 구조를 날짜/시간입니다.이 함수에 대 한 포인터를 잘못 가정 합니다. structtm 개체입니다.
반환 값
성공 하는 경우에 0입니다.오류가 있으면 잘못 된 매개 변수 처리기를의 설명에 따라 호출 됩니다 매개 변수 유효성 검사.실행을 계속 수 있으면 반환 값은 오류 코드입니다.ERRNO의 오류 코드를 정의 합니다.H.자세한 내용은 errno 상수를 참조하십시오.각 오류 조건에 대해 반환 되는 실제 오류 코드는 다음 표에 나와 있습니다.
오류 조건
buffer |
numberOfElements |
tm |
Return |
값buffer |
---|---|---|---|---|
NULL |
임의 |
임의 |
EINVAL |
수정 되지 않음 |
않은NULL (올바른 메모리를 가리키는) |
0 |
임의 |
EINVAL |
수정 되지 않음 |
없습니다NULL |
0 < 크기 < 26 |
임의 |
EINVAL |
빈 문자열 |
없습니다NULL |
> = 26 |
NULL |
EINVAL |
빈 문자열 |
없습니다NULL |
> = 26 |
잘못 된 시간 구조 나의 시간 구성 요소에 대 한 값 범위 부족 |
EINVAL |
빈 문자열 |
[!참고]
오류 조건에 대 한 wasctime_s 와 비슷한 asctime_s 을 제외한 크기 제한에서 측정 됩니다.
설명
asctime 함수 구조를 문자열에 저장 된 시간을 변환 합니다._tm 값에 대 한 호출에서 얻은입니다 일반적으로 gmtime 또는 localtime.두 함수 모두 채우는 데 사용할 수는 tm 시간에 정의 된 구조체입니다.H.
timeptr 멤버 |
값 |
---|---|
tm_hour |
시간 (는 0-23) |
tm_isdst |
일광 절약 시간이 적용 되는 경우 양수입니다. 일광 절약 시간제가 적용 되지 않는 경우 0입니다. 일광 절약 시간 상태를 알 수 없는 경우 음수입니다.C 런타임 라이브러리 일광 절약 시간제 (DST)의 계산을 구현에 대 한 대한민국의 규칙을 가정 합니다. |
tm_mday |
월 (1)의 |
tm_min |
분 (0-59입니다) |
tm_mon |
달 (0–11; 0 = 1 월) |
tm_sec |
초 (0-59입니다) 1 분 후 |
tm_wday |
요일 (0–6; 0 = 일요일) |
tm_yday |
일 연도 (0–365; 1 월 1 일 = 0) |
tm_year |
(현재 연도 1900 뺀) 년 |
변환 된 문자열은 현지 표준 시간대 설정에 따라 수도 조정 됩니다.참조는 time, _time32, _time64, _ftime, _ftime32, _ftime64, 및 localtime_s, _localtime32_s, _localtime64_s 함수는 현지 시간을 구성 하는 방법에 대 한 정보를 하는 _tzset 함수에 대 한 표준 시간대 환경 및 전역 변수를 정의 하는 방법에 대 한 정보입니다.
생성 되는 문자열 결과 asctime_s 정확히 26 자 고 폼 Wed Jan 02 02:03:55 1980\n\0.24 시간 형식을 사용 합니다.하면 모든 필드에 있습니다.줄 바꿈 문자 및 null 문자가 문자열의 마지막 두 개의 위치를 차지합니다.두 번째 매개 변수로 전달 된 값 이상의 크기를 표시 해야 합니다.오류 코드 이하의 경우 EINVAL, 반환 됩니다.
_wasctime_s와이드 문자 버전입니다 asctime_s._wasctime_s및 asctime_s 그렇지을 동일 하 게 작동 합니다.
일반 텍스트 루틴 매핑
TCHAR입니다.H 루틴 |
_UNICODE 및 _Mbcs가 정의 되지 않았습니다. |
_Mbcs가 정의 |
_Unicode가 정의 |
---|---|---|---|
_tasctime_s |
asctime_s |
asctime_s |
_wasctime_s |
C + +에서이 함수를 사용 하 여 템플릿 오버 로드에 단순화 됩니다. 오버 버퍼 길이 size 인수를 지정 하지 않아도 자동으로 유추할 수 있습니다.자세한 내용은 보안 템플릿 오버 로드를 참조하십시오.
요구 사항
루틴 |
필수 헤더 |
---|---|
asctime_s |
<time.h> |
_wasctime_s |
<time.h> 또는 <wchar.h> |
보안
버퍼 포인터가 없는 경우 NULL 및 올바른 버퍼에 포인터, 어떤 위치에 있는 함수를 덮어쓰게 됩니다.이 액세스 위반에도 발생할 수 있습니다.
A 버퍼 오버런 size 인수에 전달 된 버퍼의 실제 크기 보다 클 경우 발생할 수 있습니다.
예제
이 프로그램은 정수 (long)에서 시스템 시간 배치 aclock, 구조로 변환 newtime 및 다음 문자열 형식에 대해 변환 출력, 사용 하는 asctime_s 함수.
// 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
gmtime_s, _gmtime32_s, _gmtime64_s