NOM¶
tzfile - Informations de zone horaire
DESCRIPTION¶
Cette page décrit la structure des fichiers d'informations de zone horaire
utilisés par
tzset(3). Ces fichiers sont habituellement
situés dans les répertoires
/usr/lib/zoneinfo ou
/usr/share/zoneinfo.
Les fichiers d'informations de zone horaire commencent par les caractères
magiques « TZif » pour les identifier en tant que fichiers
d'informations de zone horaire (Time Zone information file). Ces
caractères sont suivis d'un caractère permettant d'identifier le
format du fichier (en 2005, les seuls caractères autorisés sont
l'ASCII NUL « \0 » et le « 2 »),
suivis de 15 octets contenant des zéros et réservés pour un
usage futur, suivis de six valeurs sur 4 octets de type
long,
écrites dans l'ordre « standard » (
big
endian, le bit de poids fort en premier). Ces valeurs sont, dans
l'ordre :
- tzh_ttisgmtcnt
- Nombre d'indicateurs UTC/local enregistrés dans le
fichier.
- tzh_ttisstdcnt
- Nombre d'indicateurs standard/locale enregistrés dans
le fichier.
- tzh_leapcnt
- Nombre de secondes de rattrapage pour lesquelles des
données sont enregistrées dans le fichier.
- tzh_timecnt
- Nombre d'« instants de transition »
pour lesquels des données sont enregistrées dans le
fichier.
- tzh_typecnt
- Le nombre de « types d'heures locales »
pour lesquelles des données sont enregistrées dans le fichier
(ne doit pas être nul).
- tzh_charcnt
- Nombre de caractères de « chaînes
d'abréviation de zone horaire » enregistrées dans le
fichier.
L'en-tête ci-dessus est suivi par les valeurs
tzh_timecnt sur 4
octets de type
long, triées par ordre croissant. Ces valeurs sont
écrites dans l'ordre « standard » des octets. Chacune
est utilisée comme un instant de transition (tel que renvoyé par
l'appel système
time(2)) auquel les règles de calcul de
l'heure locale changent. Ensuite, viennent les valeur
tzh_timecnt sur
un octet de type
unsigned char ; chacune indiquant lequel des
différents types « d'heure locale » décrits dans
le fichier est associé avec l'instant de transition de même rang.
Ces valeurs servent d'indice dans une table de structures
ttinfo (avec
des entrées
tzh_typecnt) qui apparaissent ensuite dans le fichier.
Ces structures sont définies ainsi :
struct ttinfo {
long tt_gmtoff;
int tt_isdst;
unsigned int tt_abbrind;
};
Chaque structure est écrite sous forme d'une valeur de 4 octets, du type
long, dans l'ordre standard des octets pour
tt_gmtoff, suivie
d'une valeur sur 1 octet pour
tt_isdst et d'une valeur sur 1 octet pour
tt_abbrind. Dans chaque structure,
tt_gmtoff indique le nombre
de secondes à ajouter à UTC,
tt_isdst indique que
tm_isdst doit être définie par
localtime(3) et que
tt_abbrind sert d'index dans la table des caractères
d'abréviation de la zone horaire qui suit les structures
ttinfo
dans le fichier.
Viennent ensuite
tzh_leapcnt paires de valeurs 4 octets, écrites
dans l'ordre standard des octets. La première valeur de chaque paire
donne l'instant (comme fourni par
time(2)) auquel s'insère une
seconde de rattrapage. La seconde indique le nombre
total de secondes
de rattrapage à insérer après l'instant donné. Ces paires
sont classées en ordre croissant de temps.
Ensuite se trouvent
tzh_ttisstdcnt indicateurs standard/locale, chacun
enregistré sur un octet. Ils indiquent si les instants de transition
associés aux types d'heures locales ont été spécifiés
en heure standard ou locale, et servent lorsqu'un fichier de zone horaire
permet de manipuler des variables d'environnement de zone horaire à la
manière POSIX.
Finalement se trouvent
tzh_ttisgmtcnt indicateurs UTC/local, chacun
enregistré sur un octet. Ils indiquent si les instants de transition
associés aux types d'heures locales ont été spécifiés
en heure UTC ou locale, et servent lorsqu'un fichier de fuseau horaire permet
de manipuler des variables d'environnement de zone horaire à la
manière POSIX.
Localtime(3) utilise la première structure
ttinfo en heure
standard du fichier (ou simplement la première structure
ttinfo
s'il n'y en a pas en heure standard), si
tzh_timecnt est nul, ou si son
paramètre horaire est antérieur à la première transition
enregistrée dans le fichier.
NOTES¶
Cette page de manuel décrit
<tzfile.h> de l'archive source de
glibc, voir
timezone/tzfile.h.
Il semble que timezone utilise
tzfile de manière interne, mais glibc
refuse de le rendre visible depuis l'espace utilisateur. Ceci probablement
parce que les fonctions standardisées sont plus utiles et portables, et
de fait documentées par glibc. Il se peut qu'elle ne se trouve dans glibc
que pour gérer les données de timezone qui sont maintenues hors de
glibc (qui est maintenue par une autre entité).
VOIR AUSSI¶
time(3),
gettimeofday(3),
tzset(3),
ctime(3)
Pour les fichiers de fuseau horaire dans le format 2, l'en-tête et les
données ci-dessus sont suivies d'un second en-tête et données,
identiques en format sauf que 8 octets sont utilisés pour chaque
transition ou secondes de rattrapage. Après le deuxième en-tête
et données, arrive une chaîne, du même type que la variable
d'environnement POSIX TZ, entourée de sauts de lignes. Cette chaîne
est utilisée pour gérer les instants après la dernière
transition stockée dans le fichier (avec rien entre les sauts de lignes
s'il n'existe pas de représentation POSIX pour de tels instants).
VOIR AUSSI¶
ctime(3),
tzset(3),
tzselect(8),
timezone/tzfile.h dans les sources de la glibc
COLOPHON¶
Cette page fait partie de la publication 3.44 du projet
man-pages Linux.
Une description du projet et des instructions pour signaler des anomalies
peuvent être trouvées à l'adresse
<
http://www.kernel.org/doc/man-pages/>.
TRADUCTION¶
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a
<
http://po4a.alioth.debian.org/> par l'équipe de traduction
francophone au sein du projet perkamon
<
http://perkamon.alioth.debian.org/>.
Christophe Blaess <
http://www.blaess.fr/christophe/> (1996-2003), Alain
Portal <
http://manpagesfr.free.fr/> (2003-2006). Jean-Luc Coulon et
l'équipe francophone de traduction de Debian (2006-2009).
Veuillez signaler toute erreur de traduction en écrivant à
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet
manpages-fr.
Vous pouvez toujours avoir accès à la version anglaise de ce document
en utilisant la commande «
man -L C
<section> <page_de_man> ».