C言語 - 標準ライブラリ - time.h - clock_gettime、clock_settime、clock_getres

 クラウディア
1. 概要
2. 共通事項
3. clock_gettime 取得

1. 概要

 ここでメモしている関数は、「日付と時刻の取得/設定/精度の取得をする」ものです。

2. 共通事項

 以下で、共通的に出てくるものを説明しておきます。  「clockid_t clock_id」は、下記の値を持ちます。 ・CLOCK_REALTIME 通常の時計と同様に進む時間 ・CLOCK_MONOTONIC 「SI」単位系の秒で進む時間(「国際単位系 - Wikipedia」) ・CLOCK_VIRTUAL 呼び出しプロセスのために CPU がユーザモードで実行されているときにだけ進む時間 ・CLOCK_PROF CPU がユーザモードまたはカーネルモードで実行されているときに進む時間  「struct timespec」は、下記の定義になります(本章の他のページでも使用しています)。

struct timespec
{
    time_t tv_sec;        // 秒
    long   tv_nsec;       // n(ナノ)秒
};
 以下、いずれの場合も、成功時には 0 が返り、失敗時には、-1 が返り、「errno」に以下の値が設定されます。 ・EINVAL ・EFAULT ・EPERM

3. clock_gettime 取得


#include <sys/time.h>

int clock_gettime(clockid_t clock_id, struct timespec *tp);
 「clock_id」で指定するクロックの値を取得します。  以下の意味を持ちます。 ・CLOCK_REALTIME 普通の時計のように進む時間 ・CLOCK_MONOTONIC 「SI」単位系の秒で進む時間(※) ・CLOCK_VIRTUAL 呼び出しプロセスのために「CPU」がユーザモードで実行されているときにだけ進む時間 ・CLOCK_PROF 「CPU」がユーザモードまたはカーネルモードで実行されているときに進む時間  ※ 「SI」単位系は、「国際単位系 - Wikipedia」をご参照ください。
earthcar(アースカー)