sys/time.h 和 time.h

本文详细介绍了time.h和sys/time.h这两个日期时间头文件的区别。time.h为ISOC99标准的一部分,而sys/time.h则专用于Linux系统,并包含了time.h的内容。文章解释了如何根据使用的数据结构和函数来选择包含哪个头文件。
摘要由CSDN通过智能技术生成

time.h 是 ISO C99 标准日期时间头文件。
sys/time.h 是 Linux系统 的日期时间头文件。
sys/time.h 通常会包含 #include <time.h> 。
编写的代码如果与平台无关的,则需要在代码里 #include <time.h>,但这样使用 time_t 等数据结构的话需要手动
#define __need_time_t
#define __need_timespec
通常如果代码可以是平台相关的,则只需要 #include <sys/time.h> 。

CentOS 7中,time.h 主要包含了time_t、clock_t、struct tm等一些时间相关的类型定义。

sys/time.h 中虽然包含了 #include <time.h>,但是通过 #define __need_time_t 控制了只使用 time.h 中的 time_t 结构定义。

也就是说,如果单独包含了 sys/time.h,是可以使用 time_t 的,但是不能使用 struct tm 和将 tm 作为参数的时间操作函数,比如strftime()等。

到底是包含 time.h 还是 sys/time.h,还是应该依据代码中使用的数据结构和函数来决定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值