我正在学习 Kernighan 和 Ritchie 的书中的 C 语言;我正在第四章(“函数和程序结构”)的基础知识中。有一天,我对 sleep()
函数产生了好奇心,所以尝试使用它,像这样:
#include <stdio.h>
#include <unistd.h>
int main(void)
{
printf(" I like cows.");
sleep(5);
return 0;
}
程序的问题在于输出,看起来它先执行了sleep()
再执行printf()
,换句话说,它等待5秒钟然后才打印字符串。所以我想,也许程序执行sleep()
太快了,没有让printf()
像我想要的那样完成它的工作,即先打印字符串,然后再休眠。
我该如何先显示字符串,然后让程序休眠呢? 编译器是OpenBSD 4.3中的GCC 3.3.5(propolice)。
fflush(stdout)
是未定义行为。 - Box Box Box Box