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」をご参照ください。
|
|