【问题标题】:time.h clock() broken on OS X?OS X 上的 time.h clock() 坏了?
【发布时间】:2012-11-22 10:34:30
【问题描述】:

我要疯了吗?我在 x86_64 上运行它。

#include <stdio.h>
#include <time.h>
#include <unistd.h>

int main(int argc, char *argv[])
{
    printf("Clock: %f\n", clock() / (double)CLOCKS_PER_SEC);
    sleep(1);
    printf("Clock: %f\n", clock() / (double)CLOCKS_PER_SEC);
    sleep(1);
    printf("Clock: %f\n", clock() / (double)CLOCKS_PER_SEC);
    return 0;
}

打印出来

时钟:0.002880
时钟:0.002968
时钟:0.003019

它显然在sleep(1) 行等待了一秒钟,但输出显然是错误的。

如果这不起作用,是否有可移植的 C 替代方案?

【问题讨论】:

    标签: c macos clock darwin time.h


    【解决方案1】:

    我是个白痴。 clock() 返回使用的处理器时间

    【讨论】:

    • 是的,因为它正在睡觉,它可能没有使用任何东西:)
    • 为了记录,我在cplusplus.com/reference/clibrary/ctime/clock这里关注文档,我已经写信告诉他们他们的错误!
    • @joerick 只需使用 cppreference.com。它们包含的此类错误非常少,如果您发现了一个,您可以立即修复它。
    【解决方案2】:

    你可以声明一个变量 time_t t1,t2; t1 = time(NULL); sleep(1); t2 = time(NULL); 您可以调试和查看 t1 和 t2 的值。 我想你可以参考http://www.cplusplus.com/reference/clibrary/ctime/time/

    【讨论】:

      猜你喜欢
      • 2010-11-07
      • 2012-03-16
      • 1970-01-01
      • 1970-01-01
      • 2016-02-08
      • 2013-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多