如果我制作了 stdout
流的 dup
(以便以后使用)并制作了 stdout 的
流到文件然后 freopen
printf("data")
,文件不会立即用数据更新。它仅在我执行 fflush(stdout)
后更新。
fflush(stdout)
是否有一些额外的副作用?
有没有更优雅的方法来做到这一点?
最佳答案
这是缓冲 I/O 中的正常行为。同花顺不会发生任何奇怪的事情。
但是,在这种情况下,您不应该乱用标准输出。使用fopen
打开您的文件,您将获得一个FILE
指针。在 fprintf
等函数中使用此指针可以直接在其中打印,如果需要立即得到结果,则刷新它。完成后不要忘记使用 fclose
关闭文件。
关于c - 标准输出重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7780555/