TZFILE(5) FreeBSD ファイルフォーマットマニュアル TZFILE(5)
名称
tzfile − タイムゾーンの情報 |
書式
#include "/usr/src/lib/libc/stdtime/tzfile.h" |
解説
tzset(3) が使用するタイムゾーン情報ファイルは、タイムゾーン情報ファイルで あることを識別するマジック文字列 ‘‘TZif’’ から始まり、将来の使用のために 予約された 16 バイトが続き、 4 つの 4 バイト値が続きます。これは ‘‘標準’’ バイトオーダ (上位バイトを最初に格納) で格納されます。これらの値を順序に 従い、以下に示します。 |
tzh_ttisgmtcnt
ファイルに格納された、UTC/ローカル指示子の数。 上記のヘッダに続いて、 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_isdst は tm_isdst が localtime(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 |