C计算时间间隔
作者:互联网
我想计算程序中发生的某些事件之间的时间间隔(以1秒的1/10为单位).因此,我将时钟功能用于这些需求,如下所示:
clock_t begin;
clock_t now;
clock_t diff;
begin = clock();
while ( 1 )
{
now = clock();
diff = now - begin;
cout << diff / CLOCKS_PER_SEC << "\n";
//usleep ( 1000000 );
};
我希望程序先打印0秒钟,然后再打印1秒钟,然后再打印2秒钟.依此类推…实际上,它打印0约8秒,然后打印1约8秒,依此类推…
顺便说一句,如果我添加usleep以使程序每秒仅打印1次,那么它一路只打印0.
非常感谢您的帮助!
解决方法:
clock()函数返回程序收取的CPU时间.当您在usleep()调用中被阻止时,无需花费任何时间,这很清楚为什么您的时间似乎从未增加.至于为什么您似乎要花8秒才能充电一秒钟-系统中发生了其他事情,这虽然消耗了CPU时间,但是您必须共享处理器. clock()不能用于衡量实时时间的流逝.
标签:c,time,unix,clock,g 来源: https://codeday.me/bug/20191012/1900322.html