什么条件会导致clock()返回-1(即失败)?

时间:2011-08-24 15:27:40

标签: c++ time clock

我正在使用来自time.h的clock()来为我想要每秒执行一次的操作提供一个粗略的时间流逝机制。 (我可能想使用time()但是大多数问题都存在,因为time()在失败时也返回-1)。因为其他阈值足够高,如果这个阈值甚至可以达到半秒,那么确切并不重要。

该函数在失败时返回-1,目前如果我检测到失败,我会在下一秒内重试该时钟达100次。

除了某种物理硬件故障外,什么原因会导致clock()或time()失败?如果在重试之后它仍然是-1,我可以假设系统有一个“更大的问题”(所以我可能想要优雅地退出)?

3 个答案:

答案 0 :(得分:1)

我的friendly man page声明如下:

  

如果使用的处理器时间不可用或其值不可用   表示,该函数应返回值(clock_t)-1

请注意,如果您希望挂钟时间使用clock()time()将根据CPU时间使用情况(在Windows以外的所有内容上)返回一个值。

答案 1 :(得分:0)

来自man clock(3)

  

如果使用的处理器时间不可用或其值不可用   表示,该函数返回值(clock_t)-1

听起来像一个符合要求的工具可以返回并完成它。

答案 2 :(得分:0)

从内核模式应用程序调用该函数也会导致它失败,这就是我所关注的。