C 语言中的时钟函数

1 c unix system-calls time.h

在研究 time.h 中的 Clock() 函数时,我问自己一个问题:编写一个简单的程序来看看它是如何工作的。当运行这个程序时,我很惊讶显示的结果是 0,而我期望的是 2。我哪里错了?

int main(int argc, char const *argv[]){
  int msec = 0;
  clock_t before = clock();
  sleep(2);
  clock_t difference = clock() - before;
  msec = difference * 1000 / CLOCKS_PER_SEC;
  printf("Time taken %d seconds\n",msec/1000);
}
Run Code Online (Sandbox Code Playgroud)

Eri*_*hil 5

clock测量程序使用的处理器时间。您的程序在休眠时不使用处理器时间。程序的其余部分只用了不到一毫秒的时间。

\n

要测量 \xe2\x80\x9cwall Clock\xe2\x80\x9d 或 \xe2\x80\x9creal world\xe2\x80\x9d 时间,请使用time,并使用difftime减去time_t返回的类型的值time

\n
#include <stdio.h>\n#include <time.h>\n#include <unistd.h>\n\nint main(int argc, const char *argv[])\n{\n    time_t before = time(NULL);\n    sleep(2);\n    double difference = difftime(time(NULL), before);\n    printf("The time taken was %g seconds.\\n", difference);\n}\n
Run Code Online (Sandbox Code Playgroud)\n