TIME_UTC

TIME_UTC

고해상도 시간을 얻는 timespec_get()을 쓸 때, "어떤 시간 기준(타임 베이스)으로 측정할까"를 정해야 해요. 그때 UTC 기준을 나타내는 매크로가 TIME_UTC예요. <time.h>에 정의돼 있어요.

출처: cppreference

본문

TIME_UTC는 C11부터 도입된 매크로 상수예요. 0보다 큰 정수 상수로 확장되며, UTC 시간 기준(time base)을 가리켜요. timespec_get()에서 이 값을 인자로 넘겨 UTC 기준의 달력 시간을 얻는 데 써요.

#define TIME_UTC /* implementation defined */

주의

  • 구현은 추가적인 시간 기준을 정의할 수 있지만, 필수로 지원해야 하는 것은 UTC에 기반한 실시간(real time) 클록뿐이에요.

예시

timespec_get()TIME_UTC를 넘겨 현재 시간을 초와 나노초로 얻는 흐름이에요.

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

int main(void)
{
    struct timespec ts;
    if (timespec_get(&ts, TIME_UTC) == TIME_UTC)
        printf("%lld.%09ld\n", (long long)ts.tv_sec, ts.tv_nsec);
}

더 알아보기

  • 이 매크로를 실제로 소비하는 timespec_get() 함수와 짝을 이뤄요.
  • 초와 나노초를 담는 timespec 구조체도 함께 보면 좋아요.
  • cppreference의 TIME_UTC 원문을 참고해요.