TZFILE(5)

이름
tzfile - 시간 영역 정보

사용법
#include <tzfile.h>

설명
tzset(3) 에 의해 사용되는 시간 영역 정보 파일은 시간 영역 정보 파일임을 인식시키기 위하여 magic characters "TZif"로 시작하고 다음에 사용하기 위한 16 바이트와 long, 타입의 16바이트를 가지고 ``standard'' 바이트 순서로 쓰인다. (high-order 값의 바이트가 먼저 쓰인다.) 이 값들은 순서대로 아래와 같다.:

tzh_ttisgmtcnt
    파일에 저장된 UTC/local indicator의 번호

tzh_ttisstdcnt
    파일에 저장된 standard/wall indicator의 번호

tzh_leapcnt
    파일에 저장된 각 데이터에 대한 leap second의 번호

tzh_timecnt
    파일에 저장된 각 데이터에 대한 "transition times"의 번호

tzh_typecnt
    파일에 저장된 각 데이터에 대한 "local time types"의 번호 (0 이 될 수 없다.)

tzh_charcnt
    파일에 저장된 "time zone abbreviation strings"의 문자의 번호 stored in the file.

위의 해더들은 long, 타입의 tzh_timecnt 4 바이트 값으로 이어지고, 작은 값에서 큰 값으로 정렬된다. 이 값들은 ``standard'' 바이트 순서로 쓰여진다. 각각은 작업하는 곳의 기준에 맞춘 변환 시간( time(2) 로 반환되는 것과 같이)으로 쓰여진다. 다음은 unsigned char 타입의 tzh_timecnt 1 바이트 값이 온다; 각각의 값은 파일에 표시된 ``local time'' 타입의 각각의 다른 타입이 같이 표시된 변환 시간과 연관되어 있음을 말한다. 이 값들은 파일에서 다음에 표시하는 ttinfo 구조의 순서에 관한 표시의 역할을 한다; 이 구조들은 아래와 같이 정의 된다;

struct ttinfo {
	long	tt_gmtoff;
	int	tt_isdst;
	unsigned int	tt_abbrind;
};

각 구조는 long 타입의
 .I tt_gmtoff 을 위해 일반적인 바이트 순서로, 4 바이트로 쓰여지고. tt_isdst 를 위한 1 바이트와 tt_abbrind. 를 위한 1 바이트로 이어진다. 각 구조에서, tt_gmtoff 는 UTC에 더하기 위하여 초의 번호를 주고, tt_isdst 는 tm_isdst 가 localtime (3) 로 설정되어야 하는지 통보하고, tt_abbrind 는 파일에서 ttinfo 구조를 따르는 시간 영역의 단축 문자의 순서에 관한 인텍스 역할을 한다.

그리고, 일반적인 바이트 순서로 쓰여진 4바이트 값의 tzh_leapcnt 쌍이 있다; 각 쌍의 첫 값은 leap second가 일어나는 시간을 ( time(2) 로 반환되는) 준다; 두번째 값은 주어진 시간 후에 적용될 leap second의 total number 를 준다. 값의 쌍들은 시간에 따라 증가하는 순서로 정렬 된다.

그리고 각각 1 바이트 값으로 정렬된 tzh_ttisstdcnt standard/wall indicators가 있다; 이것들은 지역 시간 타입과 관련된 변환 시간이 기준 시간으로 혹은 Wall clock time 으로 명기 되었는지를 판단한다. 그리고 그것들은 시간이 시간 영역 파일이 사용되고 있을 때 POSIX-style 시간 영역 변수를 다루는데 사용된다.

마지막으로 각각 1 바이트 값으로 정렬된 tzh_ttisgmtcnt UTC/local indicator가 있다; 지역 시간 형식과 관련된 변환 시간이 UTC나 지역시간으로 명기 되어 있는지 판단한다. 그리고 그것들은 시간이 시간 영역 파일이 사용되고 있을 때 POSIX-style 시간 영역 변수를 다루는데 사용된다.

만약 tzh_timecnt 가 0 이거나 시간 독립 변수가 파일에 기록된 첫번째 변환 시간보다 적으면 Localtime 은 첫째 기준 시간 ttinfo 구조 (혹은 기준 시간 구조가 없는 단순한 ttinfo 구조)를 파일에서 사용한다.

관련 항목
newctime(3)