您的位置:首页 > 运维架构 > Linux

Linux ---#include <time.h>和 #include <sys/time.h>的区别

2015-03-14 12:08 423 查看
搜索了好几个,都是这么说的,有点看不明白。分析一下:

相同点: 二者都是与 日期时间相关的 头文件。

不同点:

time.h 是c99的,也就是c的库函数。

sys/time.h是linux系统的。

time.h既然是c库函数,那么在具体的平台上,就就可以依靠平台而实现,所以看上去是与平台无关的,谁都可以调用.

而 sys/time.h 只是在linux系统上可以调用。

按照下文的意思:

time_t 这样的结构,是linux的,所以,如果只是调用time.h,那么,就没有了time_t这样的结构,

所以在仅仅使用 c的time.h的时候,需要自己实现定义time_t结构:

下面好像不是定义time_t,而是 判断是否需要time_t 这个结构的宏定义。

#define __need_time_t

#define __need_timespec

===============================


#include time.h和 #include sys/time.h的区别

交叉编译情况下,两个文件的地址

/opt/gcc-4.1.2-glibc-2.4/arm-xscale-linux-gnu/arm-xscale-linux-gnu/include/time.h

/opt/gcc-4.1.2-glibc-2.4/arm-xscale-linux-gnu/arm-xscale-linux-gnu/include/sys/time.h

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: