BEZEICHNUNG¶
tzfile - Zeitzonen-Informationen
BESCHREIBUNG¶
Diese Seite beschreibt die Struktur der Zeitzonen-Dateien, die von
tzset(3) verwandt werden. Diese Dateien können typischerweise in
/usr/lib/zoneinfo oder
/usr/share/zoneinfo gefunden werden.
Die Zeitzoneninformationsdateien beginnen mit den magischen Zeichen
»TZif«, welches sie als Zeitzonen-Informationsdateien identifiziert.
Ihnen folgt (Stand 2005) ein Zeichen zur Identifikation des Dateiformats
(entweder ein ASCII-NUL (»\0«) oder eine »2«). Die darauf
folgenden 15 Byte enthalten Nullen und sind für eine zukünftige
Verwendung reserviert. Danach folgen sechs vier-Byte-Werte des Typs
long. Die Daten werden in einer »Standard«-Byteordnung
geschrieben (die höherwertigen Bytes zuerst). Die sechs Werte bedeuten:
- tzh_ttisgmtcnt
- Anzahl der in der Datei hinterlegten
UTC-/Lokal-Kennziffern
- tzh_ttisstdcnt
- Anzahl der in der Datei gespeicherten
Standard-/Wall-Kennziffern
- tzh_leapcnt
- Anzahl der Schaltsekunden, für die Angaben in der
Datei gespeichert sind
- tzh_timecnt
- Anzahl der »Übergangszeiten« (transition
times), für die Angaben in der Datei gespeichert sind
- tzh_typecnt
- Anzahl der »lokalen Zeit-Typen«, für die
Informationen in der Datei gespeichert sind (darf nicht Null sein)
- tzh_charcnt
- Anzahl der Zeichen für in der Datei gespeicherte
Zeitzonen-Abkürzungen (timezone abbreviation strings)
Nach diesem Header folgen
tzh_timecnt 4-Byte-Werte vom Typ
long,
nach steigender Wertigkeit sortiert. Auch sie werden in der
Standard-Byteordnung geschrieben. Jeder Wert wird als Zeitpunkt (wie sie von
time(2) zurückgegeben wird) verwendet, zu dem sich die Regeln
für die Berechnung der lokalen Zeit ändern. Darauf folgen
tzh_timecnt Werte vom Typ
unsigned char. Jeder dieser
Werte besagt, welcher der verschiedenen, in der Datei beschriebenen lokalen
Zeit-Typen, mit dem Wechsel der Zeitberechnung mit dem gleichen Index
verknüpft ist. Die Werte dienen als Indizes für ein Feld von
ttinfo-Strukturen (mit
tzh_typecnt Einträgen). Diese
Strukturen sind wie folgt definiert:
struct ttinfo {
long tt_gmtoff;
int tt_isdst;
unsigned int tt_abbrind;
};
Jede Struktur besteht aus einem 4-Byte-Wert für
tt_gmtoff vom Typ
long, geschrieben in einer Standard-Bytefolge, gefolgt von den
1-Byte-Werten für
tt_isdst und für
tt_abbrind. In
jeder Struktur legt
tt_gmtoff die Anzahl Sekunden fest, die zu UTC
addiert werden,
tt_isdst bestimmt, ob
tm_isdst von
localtime(3) gesetzt werden soll und
tt_abbrind entspricht dem
Index im Feld der Abkürzungszeichen für Zeitzonen, die den
ttinfo-Strukturen in der Datei folgen.
Als Nächstes gibt es
tzh_leapcnt Paare von 4-Byte-Werten,
geschrieben in Standard-Bytefolge. Der erste Wert jedes Paares bezeichnet den
Zeitpunkt (Rückgabewert von
time(2)), zu dem die Schaltsekunden
auftreten. Der zweite bestimmt die
gesamte Anzahl der Schaltsekunden,
die nach der angegebenen Zeit eingelegt werden sollen. Die Wertepaare sind in
aufsteigender Folge nach der Zeit sortiert.
Nun folgen
tzh_ttisstdcnt Standard-/Wall-Kennziffern, jede wird als
1-Byte-Wert gespeichert. Sie geben an, ob die Übergangszeiten, die den
lokalen Zeit-Typen zugeordnet sind, als Standard-Zeit oder als »wall
clock time« angegeben wurden. Sie werden verwendet, wenn eine Zonendatei
für die Verarbeitung POSIX-artiger Zeitzonen-Umgebungsvariablen
eingesetzt wird.
Schließlich gibt es
tzh_ttisgmtcnt UTC-/Lokal-Kennziffern, jeder als
1-Byte-Wert gespeichert. Sie besagen, ob die den lokalen Zeit-Typen
zugeordneten Übergangszeiten als UTC oder als lokale Zeit angegeben
wurden. Sie werden verwendet, wenn eine Zonendatei für die Verarbeitung
POSIX-artiger Zeitzonen-Umgebungsvariablen eingesetzt wird.
localtime(3) verwendet den ersten
ttinfo-Eintrag für
Standardzeit in der Datei (oder einfach den ersten
ttinfo-Eintrag, wenn
kein Standardzeit-Eintrag existiert), wenn entweder
tzh_timecnt Null
ist oder das Zeit-Argument kleiner ist als der erste in der Datei abgelegte
Übergangszeitpunkt.
ANMERKUNGEN¶
Diese Handbuchseite beschreibt
<tzfile.h> aus dem Glibc-Quelltext
(siehe
timezone/tzfile.h).
Es scheint, dass timezone
tzfile intern verwendet, aber Glibc das nicht
in der Anwendungsebene verfügbar macht. Das ist sehr wahrscheinlich, weil
die standardisierten Funktionen sinnvoller, besser portierbar und
tatsächlich von Glibc dokumentiert sind. Es ist vielleicht nur in Glibc
enthalten, nur um die nicht von Glibc (sondern einer anderen Organisation)
gepflegten Zeitzonendaten zu unterstützen.
SIEHE AUCH¶
time(3),
gettimeofday(3),
tzset(3),
ctime(3)
Für Zeitzonen-Dateien im Version-2-Format folgen dem oben Beschriebenen
(Vorspann und Daten) ein zweiter Vorspann und Daten in einem ähnlichen
Format. Der Unterschied besteht darin, dass die Übergangszeiten und
Schaltsekundenzeiten jeweils mit jeweils acht Byte kodiert werden. Nach dem
zweiten Header und den Daten folgt eine durch Zeilenumbrüche abgetrennte
Zeichenkette im Stil von POSIX-Zeitzonen-Umgebungsvariablen. Sie ist für
die Behandlung der Momente nach der letzten in der Datei gespeicherten
Übergangszeit bestimmt. (Wenn es keine POSIX-Darstellung für solche
Momente gibt, ist die Zeichenkette leer.)
SIEHE AUCH¶
ctime(3),
tzset(3),
tzselect(8) und
timezone/tzfile.h in dem Glibc-Quellcode.
KOLOPHON¶
Diese Seite ist Teil der Veröffentlichung 3.42 des Projekts Linux-
man-pages. Eine Beschreibung des Projekts und Informationen, wie Fehler
gemeldet werden können, finden sich unter
http://www.kernel.org/doc/man-pages/.
ÜBERSETZUNG¶
Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Eberhard
Schauer <Martin.E.Schauer@gmx.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public
License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird
KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken
Sie bitte eine E-Mail an <debian-l10n-german@lists.debian.org>.