关于获取时间戳函数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 ms\n", 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 ms\n", (long long)(start.tv_sec)*1000 + (long long)(start.tv_usec)/1000);

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

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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值