我正在使用来自time.h的clock()来为我想要每秒执行一次的操作提供一个粗略的时间流逝机制。 (我可能想使用time()但是大多数问题都存在,因为time()在失败时也返回-1)。因为其他阈值足够高,如果这个阈值甚至可以达到半秒,那么确切并不重要。
该函数在失败时返回-1,目前如果我检测到失败,我会在下一秒内重试该时钟达100次。
除了某种物理硬件故障外,什么原因会导致clock()或time()失败?如果在重试之后它仍然是-1,我可以假设系统有一个“更大的问题”(所以我可能想要优雅地退出)?
答案 0 :(得分:1)
我的friendly man page声明如下:
如果使用的处理器时间不可用或其值不可用 表示,该函数应返回值(clock_t)-1
请注意,如果您希望挂钟时间使用clock()
,time()
将根据CPU时间使用情况(在Windows以外的所有内容上)返回一个值。
答案 1 :(得分:0)
来自man clock(3)
如果使用的处理器时间不可用或其值不可用 表示,该函数返回值
(clock_t)-1
听起来像一个符合要求的工具可以返回并完成它。
答案 2 :(得分:0)
从内核模式应用程序调用该函数也会导致它失败,这就是我所关注的。