如何关闭 C 中标准输出的缓冲
我想关闭标准输出的缓冲,以获得以下代码的确切结果
while(1) {
printf(".");
sleep(1);
}
代码 printf 一堆“.”仅当缓冲区已满时。
I want to turn off the buffering for the stdout for getting the exact result for the following code
while(1) {
printf(".");
sleep(1);
}
The code printf bunch of '.' only when buffer gets filled.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
您可以使用 setvbuf 函数:
以下是该函数的一些其他链接。
POSIX
C/C++
You can use the setvbuf function:
Here're some other links to the function.
POSIX
C/C++
您还可以使用 setbuf
这将处理一切
You can also use setbuf
This will take care of everything
你可以这样做:
而不是这样:
You can do this:
instead of this:
使用
fflush(FILE *stream)
并以stdout
作为参数。http://www.elook.org/programming/c/fflush.html
Use
fflush(FILE *stream)
withstdout
as the parameter.http://www.elook.org/programming/c/fflush.html
使用fflush(stdout)。您可以在每次调用 printf 后使用它来强制刷新缓冲区。
Use
fflush(stdout)
. You can use it after everyprintf
call to force the buffer to flush.