1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156
|
.\" Copyright for original english version
.\" This file is in the public domain, so clarified as of
.\" 1996-06-05 by Arthur David Olson (arthur_david_olson@nih.gov).
.\"
.\" The following applies only to the german translation
.\"
.\" Copyright (c) 2001 Walter Harms <walter.harms@informatik.uni-oldenburg.de>
.\" 2001 Martin Schulze <joey@infodrom.org>
.\"
.\" This program is free software; you can redistribute it and/or modify
.\" it under the terms of the GNU General Public License as published by
.\" the Free Software Foundation; version 2 dated June, 1991.
.\"
.\" This program is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public License
.\" along with this program; if not, write to the Free Software
.\" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
.\"
.TH TZFILE 5
.SH BEZEICHNUNG
tzfile \- Informationen über Zeitzonen
.SH ÜBERSICHT
.B
#include <tzfile.h>
.SH BESCHREIBUNG
Wo sich die Informations-Dateien befinden, ist abhängig von der verwendeten (g)libc-Version.
Libc4/5 benutzen
.IR /usr/lin/zoneinfo ,
doch seit libc-5.4.6 befindet es sich in
.IR /usr/share/zoneinfo .
.PP
Die Informations-Dateien über die Zeitzonen, die von
.BR 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:
.TP
.I tzh_ttisgmtcnt
Anzahl der hinterlegten UTC/lokal-Indikatoren in der Datei.
.TP
.I tzh_ttisstdcnt
Anzahl der standard/wall-Indikatoren in der Datei.
.TP
.I tzh_leapcnt
Anzahl der Schaltsekunden, für die Daten in der Datei gespeichert sind.
.TP
.I tzh_timecnt
Anzahl der übergangszeiten in der Datei.
.TP
.I tzh_typecnt
Anzahl der lokalen Zeit-Typen, für die Informationen in der Datei
gespeichert sind (darf nicht null sein).
.TP
.I tzh_charcnt
Anzahl der Buchstaben für die Abkürzungen der Zeitzone.
.PP
Nachdem Header folgen
.I tzh_timecnt
32bit-Werte vom Typ
.B 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
.BR time (2)
zurückgegeben wird).
Darauf folgen
.I tzh_timecnt Werte vom Typ
.BR unsigned char .
Jeder dieser Werte besagt, welcher der verschiedenen lokalen
Zeit-Typen, die in der Datei beschrieben werden, mit dem
Zeitberechnungs-Wechsel an der gleichen Position verknüpft ist. Die
Werte sind als Indizes für die nachfolgenden
.BR ttinfo \-Strukturen
zu verstehen, die als nächstes in der Datei stehen. Diese Strukturen
sind wie folgt definiert.
.in +.5i
.sp
.nf
.ta .5i +\w'unsigned int\0\0'u
struct ttinfo {
long tt_gmtoff;
int tt_isdst;
unsigned int tt_abbrind;
};
.in -.5i
.fi
.sp
Jede derartige Struktur besteht aus einem 4-Byte-Wert für
.I tt_gmtoff
vom Typ
.BR long ,
geschrieben in natürlicher Bytefolge, gefolgt von einem 1-Byte-Wert für
.I tt_isdst
und einem 1-Byte-Wert für
.IR tt_abbrind .
In jeder Struktur legt
.I tt_gmtoff
die Anzahl Sekunden fest, die zu UTC hinzugefügt werden,
.I tt_isdst
bestimmt, ob
.I tm_isdst
von
.BR localtime (3)
gesetzt werden soll und
.I tt_abbrind
entspricht dem Index im Array der Abkürzungszeichen für Zeitzonen, die den
.IR ttinfo \-Strukturen
in der Datei folgen.
.PP
Als nächstes gibt es
.I tzh_leapcnt
Paare von 4-Byte-Werten, geschrieben in natürlicher Bytefolge. Der
erste Wert jedes Paares bezeichnet die Zeit (zurückgegeben von
.BR time (2)),
an dem die Schaltsekunden auftreten. Der zweite bestimmt die
.I gesamte
Anzahl der Schaltsekunden, die nach der angegebenen Zeit verwendet
werden sollen. Die Wertepaare sind in aufsteigender folge nach der
Zeit sortiert.
.PP
Nun folgen
.I 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.
.PP
Schließlich gibt es
.I 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.
.PP
.I Localtime
verwendet die ersten
.IR ttinfo \-Eintrag
für Standard-Zeit in der Datei (oder einfach den ersten
.I- ttinfo \-Eintrag,
wenn kein Standard-Zeit-Eintrag existiert),
wenn
.I tzh_timecnt
null ist oder das Zeit-Argument kleiner ist als der erste
Umstellungszeitpunkt, der in der Datei beschrieben wird.
.SH "SIEHE AUCH"
.BR newctime (3).
|