SYNOPSIS

#include <tzfile.h>

DESCRIPTION

时区信息文件被 tzset(3) 使用, 其开头为特征字符"TZif", 以此标示该文件为时区信息文件, 随后六个字节保留未用. 接下来是六个"标准"字节顺序(高位在前)的四字节 long 类型值, 按顺序描述如下:

tzh_ttisgmtcnt
保存在文件中的UTC/local指示器数目.
tzh_ttisstdcnt
保存在文件中的standard/wall指示器数目.
tzh_leapcnt
其值保存在文件中的leap second的数目
tzh_timecnt
其值保存在文件中的"变化时间"数目
tzh_typecnt
其值保存在文件中的"本地时间类型"数目(非零!)
tzh_charcnt
保存在文件中的"时区简写符"数目

跟在上面这些头部后的是 tzh_timecnt 个"标准"字节顺序的四字节 long 类型值, 以升序排序. 每个值均作为一个变化时间(就像 time(2) 的返回), 系统依赖这些值来计算本地时间变化. 而在此之后的是 tzh_timecntunsigned char 类型的一字节值, 这些值指出了文件中描述的多种"本地时间"类型中哪一个与具有相同索引的变化时间相关. 这些值可作为 ttinfo 结构数组的索引. 而 ttinfo 结构在文件中随后就有定义, 描述如下:

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

结构包括一个"标准"字节顺序的四字节 long 类型值 tt_gmtoff, 以及一个一字节的 tt_isdst 和一个一字节的 tt_abbrind. 在每个结构里, tt_gmtoff 给出了要被加到UTC的时间, 以秒为单位, tt_isdst 表明 tm_isdst 是否可通过 localtime (3) 设置, 而 tt_abbrind 可作为时区简写符的数组索引, 该数组在文件中跟在 ttinfo 结构后面.

这样就有 tzh_leapcnt 个标准字节顺序的四字节对, 每个四字节对的第一个值给出一个leap second发生的时间, 就如 time(2) 的返回; 每个四字节对的第二个值给出给定时间之后所实现的总的 leap second数. 四字节对按时间的升序排序.

同样有 tzh_ttisstdcnt 个standard/wall指示器, 每个保存了一个一字节值; 这些指示器指出了变化时间(与本地时间类型相关)是否被说明为standard time或者wall clock time, 以及当一个时区文件被用于处理POSIX 格式时区环境变量时是否使用变化时间.

最后, 有 tzh_ttisgmtcnt 个UTC/local指示器, 每个保存了一个一字节值; 这些指示器指出了变化时间(与本地时间类型相关)是否被说明为UTC 或者local time, 以及当一个时区文件被用于处理 POSIX格式时区环境变量时是否使用变化时间.

如果 tzh_timecnt 等于零或者时间参数比文件记录的第一个变化时间小的话, Localtime 就使用文件中的第一个标准时间 ttinfo, 或者在没有标准时间结构是就直接使用第一个 ttinfo 结构.

最新文章

  1. mysql修改为utf8格式
  2. java内存泄露的理解与解决(转)
  3. 烟大 Contest1024 - 《挑战编程》第一章:入门 Problem G: Check The Check(模拟国际象棋)
  4. js的选择星级评分插件
  5. linux笔记:关机重启命令shutdown,系统运行级别init,退出登录logout
  6. linux c 生成uuid
  7. List迭代循环时出现分问题
  8. Python开发【第七篇】:面向对象 和 python面向对象(初级篇)(上)
  9. 转:基础总结篇之一:Activity生命周期
  10. ASP.NET 短路由配置
  11. linux_cmd_list_0
  12. webservice Dome--一个webservice的简单小实例
  13. X509证书认证流程介绍
  14. (四)jdk8学习心得之函数式接口
  15. 利用filter替换字符串中的空格
  16. Nginx log日志切割shell
  17. python调用webservice接口
  18. 程序员、互联网从业者必读KK凯文凯利三大力作之《失控》总结
  19. arm-linux-gcc/ld/objcopy/objdump参数总结【转】
  20. BroadcastReceiver介绍

热门文章

  1. linux性能查看调优
  2. Linux部分常用命令详解(二)
  3. 【linux】centos6/7 + nginx 利用certbot 申请https证书
  4. linux下又一次定位svn url方法
  5. 装Windows和Linux双系统
  6. springboot整合netty,多种启动netty的方式,展现bean得多种启动方法
  7. Spring注解之@Component、@Controller、@Service、@Repository
  8. 2018-2-13-安装-aria2
  9. 125K低频唤醒芯片SI393可替代AS3933,GS3933
  10. 基于Flink和规则引擎的实时风控解决方案