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.

The number of UNIX installations has grown to 10, with more expected.
— UNIX Programming Manual, 1972