linux "clock()" 函数是否计入进程的 "sleep" 时间?

Does linux "clock()" function count in "sleep" time of a process?

我调用了"sleep"个函数,但是好像没有算在内,像这样:

#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。

我的猜测是否正确?手册页没有为我的问题指定任何答案。有没有更好的函数来获取两行代码之间经过的时间?

clock(3) 不是 return 秒,它是 return 使用的秒数除以 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

编译