tail head cat sleep
QR code linking to this page

manページ  — GETTIMEOFDAY

名称

gettimeofday, settimeofday – 日付と時刻の取得 / 設定

内容

ライブラリ

Standard C Library (libc, -lc)

書式

#include <sys/time.h>

int
gettimeofday(struct timeval *tp, struct timezone *tzp);

int
settimeofday(const struct timeval *tp, const struct timezone *tzp);

解説

注記: timezone はもはや使用されません。 この情報はカーネルの外側に保持されます。

システムが保持している現在のグリニッジ時刻と現在の時間帯は gettimeofday() システムコールから得られ、 settimeofday() システムコールで設定されます。 時刻は 1970 年 1 月 1 日の深夜 (0 時) からの秒数とマイクロ秒数で表現されます。 システムクロックの分解能はハードウェアで決まり、 時刻は継続的または "チック" 単位で更新されます。 tp または tzp が NULL の場合、対応する時刻情報は返されず、また設定されません。

tptzp の指す構造体は <sys/time.h> 内に次のように定義されています:

struct timeval {
        long    tv_sec;         /* 1970 年 1 月 1 日からの秒数 */
        long    tv_usec;        /* およびマイクロ秒数 */
};

struct timezone {         int     tz_minuteswest; /* グリニッジから西方向への偏差 */         int     tz_dsttime;     /* 夏時間補正のタイプ */ };

timezone 構造体は、ローカル時間帯 (グリニッジから西向きに分単位で測定) と フラグを含みます。 フラグが 0 でない場合は、1 年の適切な時期に 夏時間がその地域に適用されることを示します。

スーパユーザだけが時刻または時間帯を設定できます。 システムが securelevel >= 2 (init(8) を参照) で実行される場合は、 最大 1 秒のみ時刻を進めるか遅らせることしかできません。 この制限が課されるのは、悪意のあるスーパユーザがファイルに任意の タイムスタンプを設定するのを防止するためです。 システム時刻は、システムが安全モードにあっても adjtime(2) システムコールを使用して制限なしに後方に調整できます。

戻り値

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 に設定されます:
[EFAULT]
  引数アドレスが無効なメモリを参照しました。
[EPERM]
  スーパユーザ以外のユーザが時刻を設定しようとしました。

関連項目

date(1), adjtime(2), clock_gettime(2), ctime(3), timeradd(3) [英語], clocks(7), timed(8)

歴史

gettimeofday() システムコールは BSD 4.2 ではじめて登場しました。

GETTIMEOFDAY (2) May 26, 1995

tail head cat sleep
QR code linking to this page


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

LISP = Lots of Irritating Silly Parentheses