4.3BSD-Reno/share/man/cat5/tzfile.0
TZFILE(5) UNIX Programmer's Manual TZFILE(5)
NNAAMMEE
tzfile - time zone information
SSYYNNOOPPSSIISS
##iinncclluuddee <<ttzzffiillee..hh>>
DDEESSCCRRIIPPTTIIOONN
The time zone information files used by _t_z_s_e_t(3) begin with
bytes reserved for future use, followed by four four-byte
values of type lloonngg, written in a ``standard'' byte order
(the high-order byte of the value is written first). These
values are, in order:
_t_z_h__t_t_i_s_s_t_d_c_n_t
The number of standard/wall indicators stored in the
file.
_t_z_h__l_e_a_p_c_n_t
The number of leap seconds for which data is stored in
the file.
_t_z_h__t_i_m_e_c_n_t
The number of "transition times" for which data is
stored in the file.
_t_z_h__t_y_p_e_c_n_t
The number of "local time types" for which data is
stored in the file (must not be zero).
_t_z_h__c_h_a_r_c_n_t
The number of characters of "time zone abbreviation
strings" stored in the file.
The above header is followed by _t_z_h__t_i_m_e_c_n_t four-byte values
of type lloonngg, sorted in ascending order. These values are
written in ``standard'' byte order. Each is used as a tran-
sition time (as returned by _t_i_m_e(2)) at which the rules for
computing local time change. Next come _t_z_h__t_i_m_e_c_n_t one-byte
values of type uunnssiiggnneedd cchhaarr; each one tells which of the
different types of ``local time'' types described in the
file is associated with the same-indexed transition time.
These values serve as indices into an array of _t_t_i_n_f_o struc-
tures that appears next in the file; these structures are
defined as follows:
struct ttinfo {
long tt_gmtoff;
int tt_isdst;
unsigned int tt_abbrind;
};
Each structure is written as a four-byte value for _t_t__g_m_t_o_f_f
Printed 7/27/90 1
TZFILE(5) UNIX Programmer's Manual TZFILE(5)
of type lloonngg, in a standard byte order, followed by a one-
byte value for _t_t__i_s_d_s_t and a one-byte value for _t_t__a_b_b_r_i_n_d.
In each structure, _t_t__g_m_t_o_f_f gives the number of seconds to
be added to GMT, _t_t__i_s_d_s_t tells whether _t_m__i_s_d_s_t should be
set by _l_o_c_a_l_t_i_m_e (_3) and _t_t__a_b_b_r_i_n_d serves as an index into
the array of time zone abbreviation characters that follow
the _t_t_i_n_f_o structure(s) in the file.
Then there are _t_z_h__l_e_a_p_c_n_t pairs of four-byte values, writ-
ten in standard byte order; the first value of each pair
gives the time (as returned by _t_i_m_e(_2)) at which a leap
second occurs; the second gives the _t_o_t_a_l number of leap
seconds to be applied after the given time. The pairs of
values are sorted in ascending order by time.
Finally there are _t_z_h__t_t_i_s_s_t_d_c_n_t standard/wall indicators,
each stored as a one-byte value; they tell whether the tran-
sition times associated with local time types were specified
as standard time or wall clock time, and are used when a
time zone file is used in handling POSIX-style time zone
environment variables.
_L_o_c_a_l_t_i_m_e uses the first standard-time _t_t_i_n_f_o structure in
the file (or simply the first _t_t_i_n_f_o structure in the
absence of a standard-time structure) if either _t_z_h__t_i_m_e_c_n_t
is zero or the time argument is less than the first transi-
tion time recorded in the file.
SSEEEE AALLSSOO
ctime(3)
Printed 7/27/90 2