2010-06-13 54 views
2

我需要一個函數或方法來在幾秒鐘內獲得UNIX紀元,這很像我在PHP中使用時間函數的方式。C++:我如何獲得unix時間?

我找不到任何方法,除了ctime中的time()似乎只輸出格式化日期,或clock()函數有秒,但似乎總是100萬的倍數,沒有任何方法解析度。我想測量程序中的執行時間,我只是想計算開始和結束之間的差異;一個C++程序員如何做到這一點?編輯:time()和difftime只允許以秒爲單位的分辨率,而不是ms或任何其他任何btw。

+1

你想要比秒精度更好的東西,但以秒爲單位測量? – 2010-06-13 06:45:36

回答

2

如果要分析得到的,我推薦使用getrusage。這將允許你跟蹤CPU時間,而不是掛鐘時間:

struct rusage ru; 
getrusage(RUSAGE_SELF, &ru); 

ru.ru_utime.tv_sec; // seconds of user CPU time 
ru.ru_utime.tv_usec; // microseconds of user CPU time 
ru.ru_stime.tv_sec; // seconds of system CPU time 
ru.ru_stime.tv_usec; // microseconds of system CPU time