tail head cat sleep
QR code linking to this page

manページ  — CLOCK_GETTIME

名称

clock_gettime, clock_settime, clock_getres – 日付と時刻の取得/設定/精度の取得をする

内容

ライブラリ

Standard C Library (libc, -lc)

書式

#include <sys/time.h>

int
clock_gettime(clockid_t clock_id, struct timespec *tp);

int
clock_settime(clockid_t clock_id, const struct timespec *tp);

int
clock_getres(clockid_t clock_id, struct timespec *tp);

解説

clock_gettime()clock_settime()clock_id で指定するクロックの値を取得、設定します。

clock_id 引数には、次の 4 つの値のうちの 1 つを指定します。 CLOCK_REALTIME は普通の時計のように進む時間、 CLOCK_MONOTONIC は SI 単位系の秒で進む時間、 CLOCK_VIRTUAL は呼び出しプロセスのために CPU がユーザモードで 実行されているときにだけ進む時間、 CLOCK_PROF は、CPU がユーザモードまたはカーネルモードで実行されている ときに進む時間です。

tp によって指される構造体は <sys/time.h> 内で次のように定義されています。

struct timespec {
        time_t  tv_sec;         /* 秒 */
        long    tv_nsec;        /* ナノ秒 */
};

時刻を設定できるのはスーパユーザだけです。 システムの安全性レベル (securelevel) が 1 より大きい場合 (init(8) を参照)、 時間は進めることだけができます。 この制限は、悪意のあるスーパユーザがファイルに 任意のタイムスタンプを設定するのを防止するためのものです。 しかし、システムが安全なモードの時でも、 adjtime(2) システムコールを使用すれば システム時間を遅らせることができてしまいます。

クロックの精度 (細かさ) は、 clock_getres() システムコールによって返されます。 この値は、(非 NULL ポインタ) *tp 内に格納されます。

戻り値

Upon successful completion, the value 0 is returned; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

エラー

次のエラーコードが errno に設定されます:
[EINVAL]
  clock_id 引数が有効な値ではありませんでした。
[EFAULT]
  *tp 引数アドレスが無効なメモリを参照しています。
[EPERM]
  スーパユーザ以外のユーザが時刻を設定しようとしました。

関連項目

date(1), adjtime(2), ctime(3), timed(8)

規格

clock_gettime(), clock_settime() および clock_getres() システムコールは IEEE Std 1003.1b-93 ("POSIX.1") に適合しています。

CLOCK_GETTIME (2) June 17, 2004

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.

The “N” in NFS stands for Not, or Need, or perhaps Nightmare
— Harry Spencer