スポンサーリンク

TZFILE(5) FreeBSD ファイルフォーマットマニュアル TZFILE(5)

名称

tzfile − タイムゾーンの情報

書式

#include "/usr/src/lib/libc/stdtime/tzfile.h"

解説

tzset(3) が使用するタイムゾーン情報ファイルは、タイムゾーン情報ファイルで あることを識別するマジック文字列 ‘‘TZif’’ から始まり、将来の使用のために 予約された 16 バイトが続き、 4 つの 4 バイト値が続きます。これは ‘‘標準’’ バイトオーダ (上位バイトを最初に格納) で格納されます。これらの値を順序に 従い、以下に示します。

       tzh_ttisgmtcnt

ファイルに格納された、UTC/ローカル指示子の数。
tzh_ttisstdcnt

ファイルに格納された、標準/ウォール指示子の数。
tzh_leapcnt

ファイルに格納された、閏秒データの数。
tzh_timecnt

ファイルに格納された ‘‘遷移時刻’’ データの数。
tzh_typecnt

ファイルに格納された ‘‘ローカルタイム型’’ データの数 (0 であってはなりません)。
tzh_charcnt

ファイルに格納された ‘‘タイムゾーン省略形文字列’’ の文字 数。

上記のヘッダに続いて、 4 バイト long 型の値が tzh_timecnt 個、昇順に並び ます。値は ‘‘標準’’ バイトオーダで格納されます。それぞれ、ローカルタイム 計算方法が変わる遷移時刻 ( time(3) で返される形式) として使用されます。続 いて、1 バイト unsigned char 型の値が tzh_timecnt 個続きます。このそれぞ れは、同一インデックスの遷移時刻に、ファイル中のどの ‘‘ローカルタイム’’ 型が対応するかを示します。値は、このファイル中で後続する ttinfo 構造体の 配列に対するインデックスです。この構造体の定義を以下に示します。

struct ttinfo {

long

tt_gmtoff;

int

tt_isdst;

unsigned int

tt_abbrind;

};

各構造体は、標準バイトオーダの 4 バイト long 型の値 tt_gmtoff 、それに続 く 1 バイトの値 tt_isdst 、そして 1 バイトの値 tt_abbrind の順に格納され ます。 tt_gmtoff は UTC に加えるべき秒数を、 tt_isdsttm_isdstlocaltime(3) により設定されるべきかどうかを、 tt_abbrind はタイムゾーン省 略文字列の配列に対するインデックスを意味します。タイムゾーン省略文字列の 配列は、同一ファイル中の ttinfo 構造体に後続しています。

その後には標準バイトオーダで格納される 4 バイト値のペアが tzh_leapcnt 個 格納されています。各ペアの最初の値は、閏秒が発生する時刻 ( time(3) で返さ れる形式) です。 2 番目の値は、指定された時刻以降に適用される閏秒の 総計 です。値のペアは時刻の昇順で格納されます。

その後に、1 バイト値の標準/ウォールの指示子が tzh_ttisstdcnt 個格納されて います。これらは、ローカルタイム型に関する遷移時刻が標準時刻で指定されて いるのか、それともウォールクロックの時刻で指定されているのかを示します。 この情報は、POSIX スタイルのタイムゾーン環境変数を扱う際に、タイムゾーン ファイルを使用するときに使用します。

最後に、複数の tzh_ttisgmtcnt UTC/ローカル指示子があり、それぞれ 1 バイト 値として格納されます。これらは、ローカル時刻タイプと関連付けられた遷移時 刻が UTC とローカル時刻のどちらで指定されているかを示し、タイムゾーンファ イルが POSIX スタイルタイムゾーン環境変数を扱うときに使用されます。

tzh_timecnt が 0 の場合もしくは時刻引数がファイル中の最初の遷移時刻以前の 場合、 localtime は、ファイル中の最初の標準時間の ttinfo 構造体を使用しま す (標準時間の構造体が無い場合には、単に最初の ttinfo 構造体を使用しま す)。

関連項目

ctime(3), time2posix(3), zic(8)

FreeBSD 10.0 September 13, 1994 FreeBSD 10.0

スポンサーリンク