gmtime_r() — 변환 시간(다시 시작 가능)

형식

#include <time.h>
struct tm *gmtime_r(const time_t *time, struct tm *result);

언어 레벨

XPG4

스레드세이프

설명

이 함수는 gmtime()의 다시 시작 가능한 버전입니다.

gmtime_r() 함수는 time 값을 초로 구분하여 결과에 저장합니다. 결과는 <time.h>에서 정의되는 tm 구조에 대한 포인터입니다. 값 시간은 보통 time() 함수에 대한 호출로 얻습니다.

tm 구조의 필드는 다음을 포함합니다.
tm_sec
초(0-61)
tm_min
분(0-59)
tm_hour
시간(0-23)
tm_mday
일(1-31)
tm_mon
월(0-11; 1월 = 0)
tm_year
년(현재 년도 - 1900)
tm_wday
주(0-6; 일요일 = 0)
tm_yday
일(한 해 기준, 0-365; 1월 1일 = 0)
tm_isdst
일광 절약 시간이 적용되지 않는 경우 0(영)입니다. 일광 절약 시간이 적용되는 경우 양수입니다. 정보를 사용할 수 없는 경우 음수입니다.

리턴값

gmtime_r() 함수는 결과 tm 구조에 대한 포인터를 리턴합니다.
참고:
  1. tm_sec에 대한 범위(0-61)는 2 윤초를 허용합니다.
  2. gmtime()localtime() 함수는 변환을 위해 공통이며 정적으로 할당된 버퍼를 사용할 수 있습니다. 이 함수 중 하나에 대한 각 호출은 이전 호출의 결과를 변경할 수 있습니다. asctime_r(), ctime_r(), gmtime_r()localtime_r() 함수는 리턴 스트링을 보유하기 위해 공통 정적으로 할당된 버퍼를 사용하지 않습니다. 재입력이 필요한 경우 이 함수는 asctime(), ctime(), gmtime()localtime() 함수의 위치에서 사용될 수 있습니다.
  3. 캘린더 시간은 EPOCH(1970년 1월 1일 00:00:00(UTC(Universal Coordinate Time) 기준)) 이후 경과한 시간(초)입니다.

이 예는 협정 세계시(UTC) 문자 스트링에 대한 time_t 표시를 조정하기 위해 gmtime_r() 함수를 사용한 다음 asctime_r() 함수를 사용하여 인쇄 가능 스트링으로 변환합니다.
#include <stdio.h>
#include <time.h>
 
int main(void)
{
   time_t ltime;
   struct tm mytime;
   char buf[50];
 
   time(&ltime)
   printf ("Coordinated Universal Time is %s\n",
   asctime_r(gmtime_r(&ltime, &mytime), buf));
}
 
/************************  Output should be similar to:  **********
 
Coordinated Universal Time is Wed Aug 18 21:01:44 1993
*/