gettimeofday函数获得的微秒数是从什么时候开始算的,另为什么usleep(20)前后获得的微秒数之差会大于20,而且不是一个固定值

app_3 app_3 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
#include <stdio.h>
#include <time.h>
#include <stdlib.h>

int main()
{

struct timeval before_usleep;
struct timeval after_usleep;


gettimeofday(&before_usleep,NULL);
usleep(20);

gettimeofday(&after_usleep,NULL);
printf("%d,\n%d\n",before_usleep.tv_usec,after_usleep.tv_usec);
printf("sleep time =%dms\n",after_usleep.tv_usec-before_usleep.tv_usec);
exit(0);
}


[kiongf@localhost ~]$ ./a.out
667131,
668155
sleep time =1024ms
[kiongf@localhost ~]$ ./a.out
367426,
368407
sleep time =981ms
[kiongf@localhost ~]$ ./a.out
48116,
49014
sleep time =898ms
[kiongf@localhost ~]$ ./a.out
553446,
553849
sleep time =403ms
[kiongf@localhost ~]$ ./a.out
475882,
476690
sleep time =808ms

这是我多次运行的结果。usleep的差值越来越大从70ms-981ms
~
...全文

相关推荐

评论 3
收藏 已收藏
分享
返回顶部
app_3
Linux_Kernel 4,469 成员 17,458 内容