首页 文章

linux“clock()”函数是否在进程的“休眠”时间内计数?

提问于
浏览
0

我称之为“睡眠”功能,但似乎没有真正计算,如下所示:

#include<iostream>
#include<unistd.h>
#include<time.h>
using namespace std;
int main(){
    clock_t t1=clock();
    sleep(2);
    clock_t t2=clock();
    cout<<t2-t1<<endl;
    return 0;
}

它在2“clock()”调用之间打印非常少的毫秒时间间隔 . 我预计它应该报告2,000,000 .

我猜是正确的吗?手册页没有指定我的问题的任何答案 . 是否有更好的功能来获得两行代码之间的时间?

1 回答

  • 1

    clock(3) 不返回秒,它返回使用的秒数除以 CLOCKS_PER_SEC (值1000000) .

    在C中,您可能想要使用

    auto t1 = std::chrono::system_clock::now();
    sleep(2)
    auto t2 = std::chrono::system_clock::now();
    auto duration = t2 - t1;
    std::cout << duration.count() << endl;
    

    别忘了用 -std=c++11 编译

相关问题