如何在C中关闭stdout的缓冲

时间:2011-10-24 13:50:29

标签: c

我想关闭stdout的缓冲以获取以下代码的确切结果

while(1) {
printf(".");
sleep(1);
}

代码printf一堆'。'只有当缓冲区被填满时。

5 个答案:

答案 0 :(得分:84)

您可以使用setvbuf function

setvbuf(stdout, NULL, _IONBF, 0);

上面的链接已被破坏。这是该函数的另一个链接。

答案 1 :(得分:9)

您也可以使用setbuf

setbuf(stdout, NULL);

这将照顾一切

答案 2 :(得分:2)

使用fflush(stdout)。您可以在每printf之后调用它以强制缓冲区刷新。

答案 3 :(得分:0)

使用fflush(FILE * stream)和stdout作为参数。

http://www.elook.org/programming/c/fflush.html

答案 4 :(得分:-2)

你可以做到

write(1, ".", 1);

而不是

printf(".");