2014-11-22 57 views
4

我在c中有一個程序,它會一直運行,直到按下CTRL + C。終止後,我需要顯示程序運行的總時間。該怎麼做才能找到程序運行的總時間? 如果有代碼,請讓我知道。 感謝計算程序運行的總時間c

+0

Simly記錄上的啓動和退出時的時間戳。然後做一個差異。 – rkosegi 2014-11-22 06:48:00

+0

目前還不清楚你是否想在你的程序中或在它之外計算這個*(使用'time(1)')。 – 2014-11-22 07:36:52

回答

3

可以使用times(2)(或clock_gettime(2)CLOCK_PROCESS_CPUTIME_ID),或者乾脆clock(3),以獲取處理器時間(你在C程序中)。

如果你需要真正的經過的時間,使用time(2)或最好clock_gettime(2)記錄的開始時間,並計算在最終的差異。您可能需要使用this來獲得double時間的度量,以將clock_gettime爲您提供的(struct timespec)轉換爲double

讀也time(7)(如果你想趕上按Ctrl-Csignal(7),又見tty(4))。也許GrzegorzŻur使用time(1) -as suggested就足夠了。

您應該閱讀Advanced Linux Programming & intro(2) & syscalls(2)

+0

對於用Ctrl + C中斷的代碼,還應該添加信號處理(例如http://www.thegeekstuff.com/2012/03/catch-signals-sample-c-code/)。 – 2014-11-22 07:05:51

+0

是的,但我猜OP正在處理'SIGINT' – 2014-11-22 07:21:01

4

是的,有一個程序叫做time

運行

time ./program 
+0

但是OP想要在他的程序中做到這一點。 – 2014-11-22 06:49:59

+0

我明白,但對於他或她而言,這可能是處理術語信號的更實用的解決方案。讓他或她選擇正確的解決方案。 – 2014-11-22 06:55:29