收藏 分享(赏)

UNIX系统开发-系统调用-time系统调用.doc

上传人:dreamzhangning 文档编号:2313606 上传时间:2018-09-10 格式:DOC 页数:3 大小:21KB
下载 相关 举报
UNIX系统开发-系统调用-time系统调用.doc_第1页
第1页 / 共3页
UNIX系统开发-系统调用-time系统调用.doc_第2页
第2页 / 共3页
UNIX系统开发-系统调用-time系统调用.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、UNIX 系统开发系统调用time 系统调用在计算机的硬件中包含一个系统时钟,系统引导的时候读取该时钟,然后维持它自己的时钟计数器,利用时钟计数器对系统内的事件,如文件的创建或用户登录等给出时间记录。时钟值也可以利用 time()系统调用供你自己的程序使用:#include #include (time.htime_t time(time_t *loc);这个系统调用返回一个 time_t 值,如果参数 loc 是指向这种类型的变量的指针,则返回值也被拷贝到这个指针所指的变量中。数据类型 time_t 实际上由 typedef 定义,可以通过访问,它的基本数据类型是long。因此 time()

2、系统调用返回一个长型整数作为当前时钟的时间值,但是,这是一种奇怪格式,即从格林威治时间 1970 年 1 月 1 日午夜起所经过的秒数(我假定这个时钟必定在某一时刻开始.)。有一个枝节问题是:它用一个长型整数可以记录多长时间?如果限制在 32 位长的正整数范围内(负值对时间没有任何意义!) ,则它刚好超过 68 年,或者说直到 2038 年初(还有充裕的时间想一个替代办法) 。这种时间格式实际上相当有用,如果你想要解决两个事件之间(例如你的登录时间和退出系统的时间)经过了多长时间,你只要从较早时间减去较晚时间就得到两个事件之间的秒数。但是,在你想要显示日,月年或者当天的时间的情况下,这种时间格

3、式就不太方便。为了简化这些操作,标准库中包含一些有用的函数为你进行转换。两个这样的函数是:#include struct tm *gmtime(time_t *loc);struct tm *localtime(time_t *loc);这两个函数都取一个参数 loc,它是指向包含自 1970 年以来的秒数值的变量的指针。这里两个函数都返回指向一个结构的指针,该结构的域包含有要求的信息:struct tm int tm_sec;int tm_min;int tm_hour;int tm_mday;int tm_mon;int tm_year;int tm_wday;int tm_yday;in

4、t tm_lsdst;域 tm_hour,tm_min,和 tm_sec 以 24 小时的时钟格式给出时钟时间,tm_mday 是在 1 到 31范围内的该月的日子,tm_mon 是范围为 011 月数,一月(January)作为 0,tm_year 是自1900 以来的年数,tm_wday 是范围为 0 到 6 的一周的日子,星期天(Sunday)为0,tm_yday 是范围为 0 到 365 该年的日子,一月一日(1 January)作为 0,tm_isdst 是一个标志规定夏时制是否有效(如果该信息可供使用) 。这两个函数的主要差别是 gmtime()给出的它的相对于格林威治时间(GMT)的时间信息,而localtime()给出的它的相对你的本地时区的时间信息(在系统安装和配置期间设置本地时区)。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报