timespec | Programming Place Plus C言語編 標準ライブラリのリファレンス

トップページC言語編標準ライブラリのリファレンス(名前順)

トップページC言語編標準ライブラリのリファレンス(ヘッダ別)


timespec

概要 秒単位とナノ秒単位で表現された時間間隔を保持する型。
ヘッダ time.h
形式
// C23 より前
struct timespec {
    time_t  tv_sec;
    long    tv_nsec;
};

// C23 
struct timespec {
    time_t  tv_sec;
    処理系定義の符号付き整数型 tv_nsec;
};
詳細

メンバtv_sec が秒単位の時間、メンバtv_nsec がナノ秒単位の時間を保存する。tv_sec は 0以上の値が、tv_nsec は 0~999999999 の範囲の値が格納される。tv_nsec の型は C11/C17 では long型と規定されていたが、C23 で処理系定義の符号付き整数型に改められている。


この構造体の使用目的として、ある基準時刻(エポック)からの経過時間をあらわすカレンダー時間を扱うことが挙げられる。この用途では timespec_get関数と組み合わせて使う。
注意
使用例
#include <stdio.h>
#include <time.h>

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

実行結果:

1733551545
842488700
関連

timespec_get関数を使って、指定のタイムベースに基づいた経過時間を timespec構造体の値として得られる。

tv_secメンバは time_t型であるため、ctime関数ctime_s関数を使えば文字列化された日時の表現が得られる。
解説章


参考リンク 🔗

本ページはアフィリエイトプログラムによる収益を得ています。
以下のリンクから商品を購入されると、Programming Place 管理者に紹介料が支払われています。


更新履歴 🔗



標準ライブラリのリファレンス(名前順)のトップページへ

標準ライブラリのリファレンス(ヘッダ別)のトップページへ

C言語編のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
X で ポストフォロー LINE で送る noteで書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る