Namespaces
Variants

timespec

From cppreference.net
헤더 파일에 정의됨 <time.h>
struct timespec ;
(C11부터)

초와 나노초로 분해된 시간 간격을 보유하는 구조체.

목차

멤버 객체

멤버 설명
time_t tv_sec 전체 초 (유효한 값은 >= 0 )
/* see below */ tv_nsec 나노초 (유효한 값은 [ 0 , 999999999 ] )

tv_nsec 의 타입은 long 입니다.

(C23 이전)

tv_nsec 의 타입은 [ 0 , 999999999 ] 범위의 정수를 표현할 수 있는 구현 정의 부호 있는 정수 타입입니다.

(C23 이후)

tv_sec tv_nsec 의 선언 순서는 명시되지 않습니다. 구현에서는 struct timespec 에 다른 멤버를 추가할 수 있습니다.

참고 사항

tv_nsec 의 자료형은 일부 플랫폼에서 long long 인데, 이는 C23부터만 표준을 준수합니다.

예제

#include <stdint.h>
#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);
    printf("Raw timespec.tv_sec: %jd\n", (intmax_t)ts.tv_sec);
    printf("Raw timespec.tv_nsec: %09ld\n", ts.tv_nsec);
}

가능한 출력:

Current time: 04/04/24 14:45:17.885909786 UTC
Raw timespec.tv_sec: 1712241917
Raw timespec.tv_nsec: 885909786

참고문헌

  • C23 표준 (ISO/IEC 9899:2024):
  • 7.27.1/3 시간 구성 요소 (p: TBD)
  • C17 표준 (ISO/IEC 9899:2018):
  • 7.27.1/3 시간 구성 요소 (p: 284)
  • C11 표준 (ISO/IEC 9899:2011):
  • 7.27.1/3 시간 구성 요소 (p: 388)

참고 항목

주어진 시간 기준을 바탕으로 초와 나노초 단위의 캘린더 시간을 반환
(함수)
캘린더 시간 타입
(구조체)
C++ documentation for timespec