Namespaces
Variants

timespec_get

From cppreference.net
헤더 파일에 정의됨 <time.h>
int timespec_get ( struct timespec * ts, int base ) ;
(1) (C11 이후)
#define TIME_UTC /* implementation-defined */
(2) (C11 이후)
1) ts 가 가리키는 timespec 객체를 현재 달력 시간으로 수정하여 base 시간 기준으로 저장합니다.
2) timespec_get 함수의 base 인수로 사용하기 적합한 값으로 확장됩니다

TIME_ 로 시작하는 다른 매크로 상수들은 구현에 의해 추가적인 시간 기준을 나타내기 위해 제공될 수 있습니다

만약 base TIME_UTC 라면,

  • ts - > tv_sec 은 구현체 정의 기준 시점 이후의 초 수로 설정되며, 정수 값으로 절삭됩니다
  • ts - > tv_nsec 멤버는 시스템 클록의 해상도로 반올림된 나노초의 정수 값으로 설정됩니다

목차

매개변수

ts - struct timespec 타입의 객체에 대한 포인터
base - TIME_UTC 또는 시간 기준을 나타내는 0이 아닌 다른 정수 값

반환값

성공 시 base 의 값, 그렇지 않으면 0입니다.

참고 사항

POSIX 함수 clock_gettime(CLOCK_REALTIME, ts) 는 에포크 이후의 시간으로 timespec 을 채우는 데에도 사용될 수 있습니다.

예제

#include <stdio.h>
#include <time.h>
int main(void)
{
    struct timespec ts;
    timespec_get(&ts, TIME_UTC);
    char buff[100];
    strftime(buff, sizeof buff, "%D %T", gmtime(&ts.tv_sec));
    printf("Current time: %s.%09ld UTC\n", buff, ts.tv_nsec);
}

가능한 출력:

Current time: 02/18/15 14:34:03.048508855 UTC

참고문헌

  • C23 표준 (ISO/IEC 9899:2024):
  • 7.27.2.5 The timespec_get 함수 (p: TBD)
  • C17 표준 (ISO/IEC 9899:2018):
  • 7.27.2.5 timespec_get 함수 (p: 286)
  • C11 표준 (ISO/IEC 9899:2011):
  • 7.27.2.5 timespec_get 함수 (p: 390)

참고 항목

초와 나노초 단위의 시간
(구조체)
주어진 시간 기준에 따른 캘린더 시간의 해상도를 반환
(함수)
에포크 이후 시간으로서 시스템의 현재 캘린더 시간을 반환
(함수)
C++ documentation for timespec_get