スポンサーリンク

NTP_GETTIME(2) FreeBSD システムコールマニュアル NTP_GETTIME(2)

名称

ntp_gettime − NTP ユーザアプリケーションインタフェース

書式

#include <sys/timex.h>

int

ntp_gettime(struct ntptimeval *ntv);

解説

ntp_gettime() によって返される時刻は、 timespec 構造体に格納されますが、 マイクロ秒 (秒とマイクロ秒) またはナノ秒 (秒とナノ秒) のどちらかの形式で あることができます。使用中の特有の形式は、 ntp_adjtime() システムコールに よって返される status ワードの STA_NANO ビットによって決定されます。 ntp_gettime() は以下のメンバを持つ ntptimeval 構造体へのポインタを引数と して持ちます:

struct ntptimeval {

struct timespec time;

/* 現在の時刻 (ns) (ro) */

long maxerror;

/* 最大誤差 (us) (ro) */

long esterror;

/* 推定誤差 (us) (ro) */

long tai;

/* TAI-UTC オフセット */

int time_state;

/* 時間状態 */

};

これらは以下のように理解されます:

       time

現在の時刻です (読取り専用)。

maxerror
マイクロ秒単位での最大誤差です (読取り専用)。

esterror
マイクロ秒単位での推定誤差です (読取り専用)。

tai
TAI および UTC の時間スケールの間の秒単位のオフセットです。こ のオフセットは 1 年毎に 2 回発行され、 TAI (閏秒がない) と UTC (閏秒がある) との間の整数秒差です。 ntpd(8) またはその他 のエージェントがこの値を管理します。値 0 は不明を意味します。 このマニュアルページの日付では、このオフセットは 32 秒です。

time_state
現在時刻の状態です。

戻り値

関数 ntp_gettime() は、処理が成功すると値 0 を返します。そうでない場合、 値 -1 が返され、グローバル変数 errno が設定されてエラーを示します。

起こりうるクロックの状態は以下のとおりです:

       TIME_OK

全てが OK で、閏秒の警告もありません。
TIME_INS
正の閏秒の警告です。この日の最後の 23:59:59 の後に追加の 1 秒 が挿入されます。
TIME_DEL
負の閏秒の警告です。この日の最後の 23:59:59 はスキップされま す。
TIME_OOP
閏秒の経過中です。
TIME_WAIT
閏秒が発生しました。
TIME_ERROR
クロックが同期していません。

関連項目

ntp_adjtime(2), ntpd(8)

       http://www.bipm.fr/enus/5_Scientific/c_time/time_1.html

http://www.boulder.nist.gov/timefreq/general/faq.htm

ftp://time.nist.gov/pub/leap-seconds.list

作者

このマニュアルページは Tom Rhodes ⟨trhodes@FreeBSD.org⟩ が書きました。

FreeBSD 10.0 May 24, 2014 FreeBSD 10.0

スポンサーリンク