【发布时间】:2011-11-02 22:24:52
【问题描述】:
我正在使用 time.h 中的 clock() 来为我希望每秒执行一次的操作提供粗略的经过时间的机制。 (我可能想使用 time() 但大多数问题都存在,因为 time() 在失败时也返回 -1)。精确并不重要,因为其他阈值足够高,即使达到半秒也可以。
函数在失败时返回 -1,目前如果我检测到失败,我会在下一秒重试时钟最多 100 次。
除了某种物理硬件故障之外,还有哪些原因会导致clock() 或time() 失败?如果重试后仍然是-1,我是否可以假设系统存在“更大的问题”(因此我可能想优雅地退出)?
【问题讨论】:
-
这是一个长镜头,但
errno的值在clock返回-1之后是否包含任何有用的信息? -
操作系统中的错误?库中实现围绕操作系统包装的错误?在实时系统的情况下,无法在配置的时间内完成请求。缺少将 OS 中配置的时钟用于 clock() 的功能。对于失败的操作系统,对时钟()的后续调用过多。我想我可以想出一些深奥的。你真正的问题是你是否需要真正关心它是否失败?
-
@PlasmaHH 如果您将其转换为答案,我至少可以投票。