用C检查过程持续时间



我正在用C代码检查进程持续时间。它适用于Windows 32位环境,但不适用于Linux 64位环境。

至少我的过程需要3分钟以上,但它显示0.062秒。我的代码在下面。

#include <stdio.h>
#include <time.h>
#include <Windows.h>
int main(void)
{
clock_t start = clock();
//....... doing something. Sorry:D
printf("%.3f secn", (double)(clock() - start) / CLOCKS_PER_SEC);
return 0;
}

如何修复此代码以在64位Linux中工作?谢谢

函数clock(3)不产生经过时间:

返回的值是到目前为止用作clock_t的CPU时间

举个最简单的例子,如果进程休眠或阻塞I/O,它将不会占用太多CPU时间。如果您需要测量实际持续时间,您可以使用time(3)difftime(3),或者可能使用clock_gettime等。


附带说明:我真的不明白为什么代码在Windows中可以工作,但更改为time+difftime应该在这两个平台上都可以工作。

为什么不使用时间命令来获取各种时间测量值?

最新更新