2017-02-03 47 views
0

我所謂的「休眠」功能,但似乎沒有真正統計,像這樣:linux「clock()」函數是否在一個進程的「睡眠」時間中計數?

#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「時鐘()」調用一個非常小的數毫秒的時間間隔。我預計它應該報告2,000,000。

我的猜測是否正確?手冊頁沒有指定我的問題的任何答案。是否有更好的函數來獲取兩行代碼之間的時間?

+0

使用gettimeofday的編譯() – alex

回答

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