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: 未定)
  • 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