【发布时间】:2016-10-24 21:23:51
【问题描述】:
当我这样做时(注意包含的\n):
printf("Something.\n");
我希望它不刷新缓冲区。我想稍后手动刷新它。
这可能吗?
This question 有点问同样的问题,但问的是 C++ 而不是 C。我不知道如何通过阅读该问题的答案来收集如何在 C 中执行此操作(所以它不是重复的) .
【问题讨论】:
-
Here 是您的选择。
-
@EugeneSh。所以你说的是
stdout处于_IOLBF模式(行缓冲),我应该使用setvbuf将其切换到_IOFBF模式(全缓冲)? -
试试并告诉我们..
-
@EugeneSh。我可以看到它将如何使用,但我不确定如何使用它(具体来说,我不知道为
char *buf参数传递什么)。你能回答这个问题吗? -
如果您阅读文档,它会解释这一点。只需将 NULL 传递给
buf参数,setvbuf将为您处理。