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.

Today, the Unix equivalent of a power drill would have 20 dials and switches, come with a nonstandard plug, require the user to hand-wind the motor coil, and not accept 3/8" or 7/8" drill bits (though this would be documented in the BUGS section of its instruction manual).
— The Unix Haters' handbook