概述
。。。。。。
unsigned int nSec= 0;
unsigned int nUSec= 0;
struct timeval tvBegin, tvNow;
int delay[20] = {500000,100000,50000,10000,1000,900,500,100,10,1,0};
int nReaduce = 0;
int nDelay = 0;
int iTimeTest = 0;
for( int i = 0; i<11; i++)
{
nDelay = delay[i];
bzero(&tvBegin, sizeof(tvBegin));
bzero(&tvNow, sizeof(tvNow));
gettimeofday(&tvBegin, NULL);
usleep(nDelay);
//fntimer(0,nDelay);
gettimeofday(&tvNow, NULL);
iTimeTest =( (tvNow.tv_sec-tvBegin.tv_sec)*1000000+tvNow.tv_usec-tvBegin.tv_usec);
printf("%dn", iTimeTest - nDelay);
}
return E_OK;
}
int fntimer(int sec, int msec)
{
struct timeval temp;
temp.tv_sec = sec;
temp.tv_usec = msec;
select(0,NULL ,NULL, NULL, &temp);
return E_OK;
}
在使用usleep时结果为打印的结果为:
1108
832
974
937
907
1077
475
907
979
986
1005
在使用fntimer()时结果为打印的结果为:
-438
-35
-17
-9
-35
109
488
889
978
987
3
最后
以上就是哭泣哈密瓜为你收集整理的关于select定时器和usleep定时器的准确率说明的全部内容,希望文章能够帮你解决关于select定时器和usleep定时器的准确率说明所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复