Provided by:
manpages-de_0.4-9_all 
BEZEICHNUNG
tzfile - Informationen über Zeitzonen
ÜBERSICHT
#include <tzfile.h>
BESCHREIBUNG
Wo sich die Informations-Dateien befinden, ist abhängig von der
verwendeten (g)libc-Version. Libc4/5 benutzen /usr/lin/zoneinfo, doch
seit libc-5.4.6 befindet es sich in /usr/share/zoneinfo.
Die Informations-Dateien über die Zeitzonen, die von tzset(3) verwendet
werden, beginnen mit den magischen Zeichen "TZif", um sie als
Zeitzonen-Dateien zu identifizieren. Die darauf folgenden 16 Byte sind
für zukünftige Dinge reserviert. Anschließend folgen sechs 32bit-Werte
(long). (Wichtig: Die Daten kommen in natürlicher Bytefolge: Highbyte
zu erst). Die sechs Werte bedeuten:
tzh_ttisgmtcnt
Anzahl der hinterlegten UTC/lokal-Indikatoren in der Datei.
tzh_ttisstdcnt
Anzahl der standard/wall-Indikatoren in der Datei.
tzh_leapcnt
Anzahl der Schaltsekunden, für die Daten in der Datei
gespeichert sind.
tzh_timecnt
Anzahl der übergangszeiten in der Datei.
tzh_typecnt
Anzahl der lokalen Zeit-Typen, für die Informationen in der
Datei gespeichert sind (darf nicht null sein).
tzh_charcnt
Anzahl der Buchstaben für die Abkürzungen der Zeitzone.
Nachdem Header folgen tzh_timecnt 32bit-Werte vom Typ long in
steigender Wertigkeit. Auch sie werden in natürlicher Bytefolge
geschrieben. Jeder Wert ist als Epochen-Wert (Sekunden seit
01.01.1970) zu interpretieren. Zu jedem dieser Zeitpunkte gibt es
einen Wechsel der Sommer- bzw. Winterzeit (der auch von time(2)
zurückgegeben wird). Darauf folgen tzh_timecnt Werte vom Typ
unsignedchar. Jeder dieser Werte besagt, welcher der verschiedenen
lokalen Zeit-Typen, die in der Datei beschrieben werden, mit dem
Zeitberechnungs-Wechsel an der gleichen Positiion verknüpft ist. Die
Werte sind als Indizes für die nachfolgenden ttinfo-Strukturen zu
verstehen, die als nächstes in der Datei stehen. Diese Strukturen sind
wie folgt definiert.
struct ttinfo {
long tt_gmtoff;
int tt_isdst;
unsigned int tt_abbrind;
};
Jede derartige Struktur besteht aus einem 4-Byte-Wert für tt_gmtoff vom
Typ long, geschrieben in natürlicher Bytefolge, gefolgt von einem
1-Byte-Wert für tt_isdst und einem 1-Byte-Wert für tt_abbrind. In
jeder Struktur legt tt_gmtoff die Anzahl Sekunden fest, die zu UTC
hinzugefügt werden, tt_isdst bestimmt, ob tm_isdst von localtime(3)
gesetzt werden soll und tt_abbrind entspricht dem Index im Array 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 natürlicher Bytefolge. Der erste Wert jedes Paares bezeichnet die
Zeit (zurückgegeben von time(2)), an dem die Schaltsekunden auftreten.
Der zweite bestimmt die gesamte Anzahl der Schaltsekunden, die nach der
angegebenen Zeit verwendet werden sollen. Die Wertepaare sind in
aufsteigender folge nach der Zeit sortiert.
Nun folgen tzh_ttisstdcnt standard/wall-Indikatoren, jeder wird als
1-Byte-Wert gespeichert. Sie geben an, ob die Umstellungszeiten, die
mit den lokalen Zeit-Typen zusammenhängen, als Standard-Zeit oder als
"wall clock time" angegeben wurden. Sie werden verwendet, wenn eine
Zonendatei dafür benutzt wird, POSIX-artige Umgebungsvariablen für
Zeitzonen zu verarbeiten.
Schließlich gibt es tzh_ttisgmtcnt UTC/local-Indikatoren, jeder als
1-Byte-Wert gespeichert. Sie besagen, ob die Umstellungszeit, die mit
den lokalen Zeit-Typen zusammenhängen, als UTC oder als lokale Zeit
angegeben wurden. Sie werden verwendet, wenn eine Zonendatei dafür
benutzt wird, POSIX-artige Umgebungsvariablen für Zeitzonen zu
verarbeiten.
Localtime verwendet die ersten ttinfo-Eintrag für Standard-Zeit in der
Datei (oder einfach den ersten wenn kein Standard-Zeit-Eintrag
existiert), wenn tzh_timecnt null ist oder das Zeit-Argument kleiner
ist als der erste Umstellungszeitpunkt, der in der Datei beschrieben
wird.
SIEHE AUCH
newctime(3).
TZFILE(5)