File: tzfile.5

package info (click to toggle)
manpages-de 0.7-1
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 3,188 kB
  • ctags: 9
  • sloc: makefile: 83; perl: 61
file content (156 lines) | stat: -rw-r--r-- 5,281 bytes parent folder | download
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).