【发布时间】:2010-02-13 22:25:40
【问题描述】:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main(void)
{
int i=0;
while(i<10)
{
printf("%d", i);
usleep(10000); // or sleep(1)
i++;
}
return 0;
}
我希望程序持续 10 秒,即打印 1 - 等待 1 秒 - 打印 2 - 等待 1 秒,依此类推直到结束。但它并没有这样做——它只是一直等待(10 秒),然后将整个数字数组一起打印,它们之间没有任何时间延迟,它只是一次打印 0123456789。 编辑:我尝试使用 sleep() 而不是 usleep 但它是一样的 如何解决?为什么会这样?
【问题讨论】:
-
另外,如果您希望程序持续 10 秒,那么您不应该只添加多个睡眠并添加它们,因为 wach 循环需要时间来执行 printf 和开销。