tzfile(5) - wariua/manpages-ko GitHub Wiki

NAME

tzfile - μ‹œκ°„λŒ€ 정보

DESCRIPTION

tzset(3)μ—μ„œ μ“°λŠ” μ‹œκ°„λŒ€ 정보 νŒŒμΌλ“€μ€ 보톡 /usr/share/zoneinfo 같은 μ΄λ¦„μ˜ 디렉터리 μ•„λž˜μ— μžˆλ‹€. κ·Έ νŒŒμΌλ“€μ€ λ‹€μŒ ν•„λ“œλ“€μ„ 담은 44λ°”μ΄νŠΈ ν—€λ”λ‘œ μ‹œμž‘ν•œλ‹€.

  • μ‹œκ°„λŒ€ 정보 νŒŒμΌμž„μ„ λ‚˜νƒ€λ‚΄λŠ” 4λ°”μ΄νŠΈμ§œλ¦¬ ASCII μ—΄ "TZif".

  • 파일 ν˜•μ‹ 버전을 λ‚˜νƒ€λ‚΄λŠ” ν•œ λ°”μ΄νŠΈ. (2017λ…„ ν˜„μž¬ ASCII NULμ΄κ±°λ‚˜, "2"μ΄κ±°λ‚˜, "3".)

  • ν–₯ν›„ μš©λ„λ₯Ό μœ„ν•΄ μ˜ˆλΉ„λœ 0을 담은 15λ°”μ΄νŠΈ.

  • ν‘œμ€€ λ°”μ΄νŠΈ μˆœμ„œ(κ°’μ˜ μƒμœ„ λ°”μ΄νŠΈ λ¨Όμ €)둜 기둝된 4λ°”μ΄νŠΈμ§œλ¦¬ μ •μˆ˜ κ°’ μ—¬μ„― 개. κ·Έ 값듀은 μ°¨λ‘€λ‘œ λ‹€μŒκ³Ό κ°™λ‹€.

    tzh_ttisgmtcnt
    νŒŒμΌμ— μ €μž₯된 UT/둜컬 ν‘œμ‹œμž 수.
    tzh_ttisstdcnt
    νŒŒμΌμ— μ €μž₯된 ν‘œμ€€/λ²½μ‹œκ³„ ν‘œμ‹œμž 수.
    tzh_leapcnt
    νŒŒμΌμ— 데이터 ν•­λͺ©μ΄ μ €μž₯돼 μžˆλŠ” 윀초 수.
    tzh_timecnt
    νŒŒμΌμ— 데이터 ν•­λͺ©μ΄ μ €μž₯돼 μžˆλŠ” μ „ν™˜ μ‹œκ°„ 수.
    tzh_typecnt
    νŒŒμΌμ— 데이터 ν•­λͺ©μ΄ μ €μž₯돼 μžˆλŠ” μ§€μ—­ μ‹œκ°„ μ’…λ₯˜ 개수. (0이 μ•„λ‹ˆμ–΄μ•Ό 함.)
    tzh_charcnt
    νŒŒμΌμ— μ €μž₯된 μ‹œκ°„λŒ€ μΆ•μ•½λͺ… λ¬Έμžμ—΄λ“€μ˜ λ°”μ΄νŠΈ 수.

μœ„ 헀더 λ‹€μŒμœΌλ‘œ λ‹€μŒ ν•„λ“œλ“€μ΄ μ˜€λŠ”λ°, 헀더 λ‚΄μš©μ— 따라 길이가 μ •ν•΄μ§„λ‹€.

  • μ˜€λ¦„μ°¨μˆœμœΌλ‘œ μ •λ ¬λœ 4λ°”μ΄νŠΈ λΆ€ν˜Έ μžˆλŠ” μ •μˆ˜ κ°’ tzh_timecnt 개. 이 값듀은 ν‘œμ€€ λ°”μ΄νŠΈ μˆœμ„œλ‘œ κΈ°λ‘λœλ‹€. μ§€μ—­ μ‹œκ°„ 계산 κ·œμΉ™μ΄ λ°”λ€ŒλŠ” μ „ν™˜ μ‹œκ°„μœΌλ‘œ 쓰인닀. (time(2) λ°˜ν™˜ κ°’μœΌλ‘œ λ‚˜νƒ€λƒ„.)

  • 1λ°”μ΄νŠΈ λΆ€ν˜Έ μ—†λŠ” μ •μˆ˜ κ°’ tzh_timecnt 개. νŒŒμΌμ— 기술된 μ—¬λŸ¬ μ§€μ—­ μ‹œκ°„ μ’…λ₯˜λ“€ 쀑 μ–΄λŠ 게 같은 인덱슀의 μ „ν™˜ μ‹œκ°„λΆ€ν„° λ‹€μŒ μ „ν™˜ μ‹œκ°„ μ „κΉŒμ§€μ˜ 기간에 연계돼 μžˆλŠ”μ§€ μ•Œλ € μ€€λ‹€. (단 λ§ˆμ§€λ§‰ μ‹œκ°„ μ’…λ₯˜ ν•­λͺ©μ€ μ•„λž˜ 기술된 POSIX μŠ€νƒ€μΌ TZ λ¬Έμžμ—΄κ³Όμ˜ 일관성 검사λ₯Ό μœ„ν•΄ μžˆμ„ 뿐이닀.) 이 값듀이 λ‹€μŒ ν•„λ“œμ—μ„œ 인덱슀 역할을 ν•œλ‹€.

  • λ‹€μŒμ²˜λŸΌ μ •μ˜λœ ttinfo ν•­λͺ© tzh_typecnt 개.

    struct ttinfo {
         int32_t        tt_gmtoff;
         unsigned char  tt_isdst;
         unsigned char  tt_abbrind;
    };

    각 κ΅¬μ‘°μ²΄λŠ” ν‘œμ€€ λ°”μ΄νŠΈ μˆœμ„œλ‘œ 된 4λ°”μ΄νŠΈ λΆ€ν˜Έ μžˆλŠ” μ •μˆ˜ κ°’ tt_gmtoff, 1λ°”μ΄νŠΈ κ°’ tt_isdst, 1λ°”μ΄νŠΈ κ°’ tt_abbrind둜 이뀄진닀. 각 κ΅¬μ‘°μ²΄μ—μ„œ tt_gmtoffλŠ” UT에 더해야 ν•  초 수이고, tt_isdstλŠ” localtime(3)μ—μ„œ tm_isdstλ₯Ό μ„€μ •ν•΄μ•Ό ν•˜λŠ”μ§€ μ—¬λΆ€λ₯Ό λ‚˜νƒ€λ‚΄λ©°, tt_abbrindλŠ” νŒŒμΌμ—μ„œ ttinfo ꡬ쑰체(λ“€) λ‹€μŒμ— μ˜€λŠ” μ‹œκ°„λŒ€ μΆ•μ•½λͺ… λ¬Έμžμ—΄ λ°°μ—΄μ—μ„œμ˜ 인덱슀 역할을 ν•œλ‹€.

  • ν‘œμ€€ λ°”μ΄νŠΈ μˆœμ„œλ‘œ 된 4λ°”μ΄νŠΈ κ°’ tzh_leapcnt 쌍. 각 쌍의 첫 번째 값은 μœ€μ΄ˆκ°€ μΌμ–΄λ‚˜λŠ” 음수 μ•„λ‹Œ μ‹œκ°„μ΄κ³  (time(2) λ°˜ν™˜ κ°’μœΌλ‘œ λ‚˜νƒ€λƒ„), 두 λ²ˆμ§ΈλŠ” κ·Έ μ‹œκ°„λΆ€ν„°μ˜ κΈ°κ°„ λ™μ•ˆμ— μ μš©ν•  윀초 총 κ°œμˆ˜μ΄λ‹€. μ‹œκ°„ μ˜€λ¦„μ°¨μˆœμœΌλ‘œ μŒλ“€μ΄ μ €μž₯돼 μžˆλ‹€. 각 μ „ν™˜μ€ μ–‘μˆ˜ λ˜λŠ” 음수 1초 만큼의 윀초이며, μ „ν™˜ κ°„μ—λŠ” 항상 μ΅œμ†Œ 28일 λΉΌκΈ° 1초만큼의 간격을 λ‘”λ‹€.

  • 1λ°”μ΄νŠΈ κ°’μœΌλ‘œ μ €μž₯된 ν‘œμ€€/λ²½μ‹œκ³„ ν‘œμ‹œμž tzh_ttisdstcnt 개. μ§€μ—­ μ‹œκ°„ μ’…λ₯˜μ™€ μ—°κ³„λœ μ „ν™˜ μ‹œκ°„λ“€μ΄ ν‘œμ€€ μ‹œκ°„κ³Ό λ²½μ‹œκ³„ μ‹œκ°„ 쀑 μ–΄λŠ μͺ½μœΌλ‘œ 지정돼 μžˆλŠ”μ§€ λ‚˜νƒ€λ‚Έλ‹€. POSIX 방식 μ‹œκ°„λŒ€ ν™˜κ²½ λ³€μˆ˜λ“€μ„ λ‹€λ£¨λŠ” κ³Όμ •μ—μ„œ μ‹œκ°„λŒ€ νŒŒμΌμ„ μ΄μš©ν•  λ•Œ 쓰인닀.

  • 1λ°”μ΄νŠΈ κ°’μœΌλ‘œ μ €μž₯된 UT/μ§€μ—­ ν‘œμ‹œμž tzh_ttisgmtcnt 개. μ§€μ—­ μ‹œκ°„ μ’…λ₯˜μ™€ μ—°κ³„λœ μ „ν™˜ μ‹œκ°„λ“€μ΄ UT μ‹œκ°„κ³Ό μ§€μ—­ μ‹œκ°„ 쀑 μ–΄λŠ μͺ½μœΌλ‘œ 지정돼 μžˆλŠ”μ§€ λ‚˜νƒ€λ‚Έλ‹€. POSIX 방식 μ‹œκ°„λŒ€ ν™˜κ²½ λ³€μˆ˜λ“€μ„ λ‹€λ£¨λŠ” κ³Όμ •μ—μ„œ μ‹œκ°„λŒ€ νŒŒμΌμ„ μ΄μš©ν•  λ•Œ 쓰인닀.

tzh_timecntκ°€ 0μ΄κ±°λ‚˜ μ‹œκ°„ μΈμžκ°€ νŒŒμΌμ— 기둝돼 μžˆλŠ” 첫 번째 μ „ν™˜ μ‹œκ°„λ³΄λ‹€ μ•žμΈ κ²½μš°μ— localtime(3) ν•¨μˆ˜λŠ” 파일의 첫 번째 ν‘œμ€€ μ‹œκ°„ ttinfo ꡬ쑰체λ₯Ό (ν‘œμ€€ μ‹œκ°„ ꡬ쑰체가 μ—†μœΌλ©΄ κ·Έλƒ₯ 첫 번째 ttinfo ꡬ쑰체λ₯Ό) μ‚¬μš©ν•œλ‹€.

버전 2 ν˜•μ‹

버전 2 ν˜•μ‹μ˜ μ‹œκ°„λŒ€ νŒŒμΌμ—μ„œλŠ” μœ„μ˜ 헀더 및 데이터 λ‹€μŒμ— 두 번째 헀더 및 데이터가 μ˜€λŠ”λ°, μ „ν™˜ μ‹œκ°„κ³Ό 윀초 μ‹œκ°„μ— 각각 8λ°”μ΄νŠΈλ₯Ό μ“΄λ‹€λŠ” 점을 λΉΌκ³€ λ™μΌν•œ ν˜•μ‹μ΄λ‹€. (윀초 κ°œμˆ˜λŠ” μ—¬μ „νžˆ 4λ°”μ΄νŠΈλ‹€.) 두 번째 헀더 및 데이터 λ‹€μŒμ—λŠ” κ°œν–‰μœΌλ‘œ 감싼 POSIX TZ ν™˜κ²½ λ³€μˆ˜ μŠ€νƒ€μΌ λ¬Έμžμ—΄μ΄ μ˜€λŠ”λ°, νŒŒμΌμ— μ €μž₯된 λ§ˆμ§€λ§‰ μ „ν™˜ μ‹œκ°„ ν›„μ˜ μˆœκ°„λ“€μ„ (νŒŒμΌμ— μ „ν™˜μ΄ μ—†λ‹€λ©΄ λͺ¨λ“  μˆœκ°„λ“€μ„) μ²˜λ¦¬ν•  λ•Œ μ“°κΈ° μœ„ν•œ 것이닀. κ·Έ μˆœκ°„λ“€μ— λŒ€ν•œ POSIX ν‘œν˜„μ΄ μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” κ²½μš°μ—λŠ” POSIX μŠ€νƒ€μΌ TZ λ¬Έμžμ—΄μ΄ λΉ„μ–΄ μžˆλ‹€. (즉 κ°œν–‰ 사이에 아무것도 μ—†λ‹€.) POSIX μŠ€νƒ€μΌ TZ λ¬Έμžμ—΄μ΄ λΉ„μ–΄ μžˆμ§€ μ•Šμ€ κ²½μš°μ—λŠ” κ·Έ μ—¬λŸ λ°”μ΄νŠΈ λ°μ΄ν„°λ‘œ 된 μ „ν™˜ μ‹œκ°„μ΄ μžˆλ‹€λ©΄ λ§ˆμ§€λ§‰ μ „ν™˜ μ‹œκ°„ ν›„μ˜ μ§€μ—­ μ‹œκ°„ μ’…λ₯˜μ™€ κ·Έ TZ λ¬Έμžμ—΄μ΄ λΆ€ν•©ν•΄μ•Ό ν•œλ‹€. 예λ₯Ό λ“€μ–΄ κ·Έ λ¬Έμžμ—΄μ΄ "WET0WEST,M3.5.0,M10.5.0/3"라고 ν•˜κ³ , λ§ˆμ§€λ§‰ μ „ν™˜ μ‹œκ°„μ΄ 7월에 μžˆλ‹€λ©΄ κ·Έ μ „ν™˜μ˜ μ§€μ—­ μ‹œκ°„ μ’…λ₯˜μ—μ„œ UT보닀 ν•œ μ‹œκ°„ 동μͺ½μ΄κ³  "WEST"둜 쀄여 μ“°λŠ” 일광 μ ˆμ•½ μ‹œκ°„μ„ λͺ…μ‹œν•΄μ•Ό ν•œλ‹€. λ˜ν•œ μ „ν™˜μ΄ μ΅œμ†Œ ν•œ λ²ˆμ€ μžˆμ„ λ•Œ λ¬΄ν•œλŒ€ κ³Όκ±°λΆ€ν„° κ°€μž₯ 이λ₯Έ μ „ν™˜ μ‹œκ°„ μ „κΉŒμ§€μ˜ κΈ°κ°„μ—λŠ” μ‹œκ°„ μ’…λ₯˜ 0번이 μ—°κ³„λœλ‹€.

버전 3 ν˜•μ‹

버전 3 ν˜•μ‹μ˜ μ‹œκ°„λŒ€ νŒŒμΌμ—μ„œλŠ” newtzset(3)μ—μ„œ κΈ°μˆ ν•˜λŠ” POSIX TZ ν˜•μ‹μ— λŒ€ν•œ 두 κ°€μ§€ μ†Œκ·œλͺ¨ ν™•μž₯을 κ·Έ POSIX TZ μŠ€νƒ€μΌ λ¬Έμžμ—΄μ—μ„œ μ“Έ 수 μžˆλ‹€. 첫째둜, μ „ν™˜ μ‹œκ°„μ˜ μ‹œκ°„ 뢀뢄이 POSIXμ—μ„œ μš”κ΅¬ν•˜λŠ” 0μ—μ„œ 24κΉŒμ§€μ˜ λΆ€ν˜Έ μ—†λŠ” 값이 μ•„λ‹ˆλΌ -167μ—μ„œ 167κΉŒμ§€ λ²”μœ„μ˜ λΆ€ν˜Έ μžˆλŠ” 값일 수 μžˆλ‹€. λ‘˜μ§Έλ‘œ, DSTκ°€ 1μ›” 1일 00:00에 μ‹œμž‘ν•΄μ„œ 12μ›” 31일 24:00에 일광 μ ˆμ•½ μ‹œκ°„κ³Ό ν‘œμ€€μ‹œ 차이λ₯Ό λ”ν•œ λ•Œμ— λλ‚˜λŠ” κ²½μš°μ—λŠ” DSTκ°€ 연쀑 λ‚΄λ‚΄ 효λ ₯이 μžˆλ‹€.

ν–₯ν›„ ν˜•μ‹μ΄ λ°”λ€Œλ©΄μ„œ 더 λ§Žμ€ 데이터가 덧뢙을 수 μžˆλ‹€.

SEE ALSO

time(2), localtime(3), tzset(3), tzselect(8), zdump(8), zic(8)


2019-03-06

⚠️ **GitHub.com Fallback** ⚠️