其他分享
首页 > 其他分享> > C计算时间间隔

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