我想关闭stdout的缓冲,以便获得以下代码的确切结果
while(1) { printf("."); sleep(1); }
代码只在缓冲区填满时才打印一串.“”。
whitzsjs1#
您可以使用setvbuf function:
setvbuf(stdout, NULL, _IONBF, 0);
下面是该函数的一些其他链接。
o0lyfsai2#
您还可以使用setbuf
setbuf(stdout, NULL);
这会搞定一切的
rqcrx0a63#
使用fflush(FILE *stream),其中stdout作为参数。http://www.elook.org/programming/c/fflush.html
fflush(FILE *stream)
stdout
wrrgggsh4#
您可以执行以下操作:
write(1, ".", 1);
而不是这样:
printf(".");
xqnpmsa85#
使用fflush(stdout)。您可以在每次printf调用后使用它来强制刷新缓冲区。
fflush(stdout)
printf
5条答案
按热度按时间whitzsjs1#
您可以使用setvbuf function:
下面是该函数的一些其他链接。
o0lyfsai2#
您还可以使用setbuf
这会搞定一切的
rqcrx0a63#
使用
fflush(FILE *stream)
,其中stdout
作为参数。http://www.elook.org/programming/c/fflush.html
wrrgggsh4#
您可以执行以下操作:
而不是这样:
xqnpmsa85#
使用
fflush(stdout)
。您可以在每次printf
调用后使用它来强制刷新缓冲区。