我是靠谱客的博主 甜蜜朋友,这篇文章主要介绍关于获取时间戳函数gettimeofday的用法小结Linux下gettimeofday函数注意点,现在分享给大家,希望可以做个参考。

Linux下gettimeofday函数

函数头文件及原型为:

#include<sys/time.h>
int gettimeofday(struct
timeval*tv,struct
timezone *tz )

参数:

struct
timeval{
long
tv_sec;/*秒*/
long
tv_usec;/*微妙*/
}struct
timezone{
int tz_minuteswest;/*和greenwich时间差*/
int tz_dsttime;
}

习惯用法:

struct timeval start;
gettimeofday(&start,NULL);
printf("time is %ld msn", start.tv_sec*1000 + start.tv_usec/1000);

后面可以再声明一个类似的end参数,通过end与start相减,可以获得两次调用gettimeofday函数之间代码执行的时间。

注意点

以上代码在64位linux下执行正常,在32位linux嵌入式设备上执行结果有问题,可能是32位与64位系统中,long类型能够保存的数据长度不同导致。

32位系统中long占4个字节,64位系统中long占8个字节。

若想在32位linux嵌入式设备上正常获取毫秒级时间戳,需要加上强制类型转换,如下所示:

struct timeval start;
gettimeofday(&start,NULL);
printf("time is %lld msn", (long long)(start.tv_sec)*1000 + (long long)(start.tv_usec)/1000);

转自:
https://blog.csdn.net/qq_33417509/article/details/106622832

参考:
C/C++获取时间方法:gettimeofday()

最后

以上就是甜蜜朋友最近收集整理的关于关于获取时间戳函数gettimeofday的用法小结Linux下gettimeofday函数注意点的全部内容,更多相关关于获取时间戳函数gettimeofday内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(120)

评论列表共有 0 条评论

立即
投稿
返回
顶部