【发布时间】:2009-10-06 23:26:17
【问题描述】:
有谁知道为什么如果我在延迟之前放置一个 printf ,它会等到延迟结束后再打印 de 消息?
带有 sleep() 的代码 1:
int main (void)
{
printf ("hi world");
system("sleep 3");
}
具有自我实现延迟的 Code2:
void delay(float sec)
{
time_t start;
time_t current;
time(&start);
do{
time(¤t);
}while(difftime(current,start) < sec);
}
int main (void)
{
printf ("hi world");
delay(3);
}
如果:
printf ("hi world");
delay(3);
printf ("hi world");
delay(3);
它一直等到睡眠总和,然后同时打印消息
为什么会这样?
更新:当我调用延迟时,我写了延迟(“睡眠 3”),我的意思是延迟(3)。已更正
【问题讨论】:
-
另外,为了获得更好的延迟功能,请考虑在
unistd.h中声明的标准 POSIXsleep()函数