C中delay()函数的最大值是多少

时间:2014-02-14 19:50:05

标签: delay gnu

我可以给C中的delay()函数赋予的最大值是多少。我无法找到任何文档。我正在使用gcc编译器。它是否会受到任何机会的平台依赖?

1 个答案:

答案 0 :(得分:2)

  

任何机会都会依赖于平台吗?

首先,函数本身与平台有关,因此如果您希望符合标准或可移植,则不应使用它。你在评论中说你使用QNX Neutrino; QNX documentation for the function通过在“分类”标题下说“QNX 4”来表明它是特定于QNX的事实。

要真正回答这个问题,我几乎没有理由认为除了类型之外的论点有任何限制。在具有32位整数的平台上,您应该能够睡眠2 ^ 32-1毫秒,或约49天。在具有64位整数的平台上,您应该能够睡眠2 ^ 64-1毫秒,或约5.85亿年。

但是,如果您想要使用符合标准的功能,我建议使用sleepusleep代替(取决于您需要的分辨率),这些功能由POSIX指定并受大多数人支持非POSIX系统也是如此。除了系统int的长度之外,还应保证它们不允许对您允许睡眠的最长时间进行任何限制。