如何在C中关闭stdout的缓冲

eimct9ow  于 2023-01-08  发布在  其他
关注(0)|答案(5)|浏览(132)

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

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

代码只在缓冲区填满时才打印一串.“”。

whitzsjs

whitzsjs1#

您可以使用setvbuf function

setvbuf(stdout, NULL, _IONBF, 0);

下面是该函数的一些其他链接。

o0lyfsai

o0lyfsai2#

您还可以使用setbuf

setbuf(stdout, NULL);

这会搞定一切的

rqcrx0a6

rqcrx0a63#

使用fflush(FILE *stream),其中stdout作为参数。
http://www.elook.org/programming/c/fflush.html

wrrgggsh

wrrgggsh4#

您可以执行以下操作:

write(1, ".", 1);

而不是这样:

printf(".");
xqnpmsa8

xqnpmsa85#

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

相关问题