【发布时间】:2018-12-09 04:26:50
【问题描述】:
我创建了简单的代码来测试 sleep() 函数。在 C 中。
我尝试执行以下代码,程序在终止前等待 5 秒:
#include <stdlib.h>
#include <stdio.h>
int main(){
int n=0;
for (n=1;n<=10;n++){
sleep(.5);
}
return 0;
}
但是它会等待大约 100 毫秒。嗯,肯定不到一秒。
现在,如果我改为执行以下代码:
#include <stdlib.h>
#include <stdio.h>
int main(){
int n=0;
for (n=1;n<=10;n++){
sleep(1);
}
return 0;
}
程序按预期运行(在退出前等待 10 秒)。
为什么当参数为float时sleep()无法正常执行?
什么是与我可以用来代替睡眠的所有系统兼容的绝对最佳功能?
【问题讨论】:
-
我很惊讶一个 1k 用户的研究如此之少。快速查看文档会告诉您
sleep将整数作为参数。在 SO 上也很容易找到第二个问题的答案。 -
另外,请阅读标签说明。调试标签完全不适合这个问题。
-
您没有收到有关
sleep的隐式声明的警告吗? -
请不要认为idownvotedbecau.se/noresearch ,但这可能是反对票的原因。
标签: c floating-point sleep