2014-11-22 28 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