スポンサーリンク

INITTODR(9) FreeBSD カーネル開発者マニュアル INITTODR(9)

名称

inittodr − システムタイムの初期化

書式

#include <sys/types.h>
#include <sys/systm.h>

void

inittodr(time_t base);

解説

inittodr() 関数は時刻を決定しシステムクロックの設定を行います。システムの バッテリバックアップクロックおよび base で与えられるルートファイルシステ ムから得られる時刻を検査する発見方法を使用して正しい時刻の取得を試みま す。 base の値を得る方法は、ルートファイルシステムのタイプに依存して変化 するでしょう。下記の発見方法が使用されます。

 バッテリバックアップクロックが妥当な時刻であれば、これが使用されます。

バッテリバックアップクロックが妥当な時刻でなければ、 base で与えられ た時刻が使用されます。

一度システムタイムが決定されると、これが time 変数に格納されます。

診断

システムタイムの計算に問題があった場合は、 inittodr() 関数は診断メッセー ジを出力します。出力される診断メッセージには下記の状態が含まれます。

 バッテリバックアップクロックが無意味のようである。

関連項目

resettodr(9), time(9)

バグ

多くのシステムで inittodr() は、年、月、日、時、分、秒で表現される時刻か ら、秒で表現される time に変換しなければなりません。多くの実装ではコード の共有が可能ですが、共有していません。

それぞれのシステムの正確な時刻取得のための発見方法は、わずかに異なりま す。

FreeBSD の実装は、バッテリバックアップクロックを使用できない場合は、 base で与えられた時刻をもっとうまく検証するべきでしょう。現在は無条件にシステ ムタイムをこの値に設定します。

FreeBSD 10.0 March 22, 1997 FreeBSD 10.0

スポンサーリンク