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内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复