NTP_GETTIME(2)

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

書式
<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
    現在時刻の状態です。

戻り値

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

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> が書きました。