Linux-gettimeofday能达到微秒精度吗?

Linux-gettimeofday能达到微秒精度吗?

偏爱自由 发布于 2017-03-14 字数 141 浏览 990 回复 1

在linux上,获取时间用的是gettimeofday,输出时间的结构是struct timeval,其中一个成员是tv_usec,那么gettimeofday确实能支到持微秒精度吗?

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夜无邪 2017-05-25 1 楼

#include <assert.h>
#include <sys/time.h>

int main()
{
float time_use=0;
struct timeval start;
struct timeval end;
gettimeofday(&start,NULL);
printf("start.tv_sec:%dn",start.tv_sec);
printf("start.tv_usec:%dn",start.tv_usec);

sleep(3);
gettimeofday(&end,NULL);
printf("end.tv_sec:%dn",end.tv_sec);
printf("end.tv_usec:%dn",end.tv_usec);
time_use=(end.tv_sec-start.tv_sec)*1000000+(end.tv_usec-start.tv_usec);//微秒
printf("time_use is %fn",time_use);

//输出:time_use is 3001410.000000
}

也可以通过select来获得微秒的时差(非阻塞方式)