c - 标准输出重定向

标签 c redirect stream stdout

如果我制作了 stdout 流的 dup(以便以后使用)并制作了 stdout 的 freopen 流到文件然后 printf("data"),文件不会立即用数据更新。它仅在我执行 fflush(stdout) 后更新。

fflush(stdout) 是否有一些额外的副作用?

有没有更优雅的方法来做到这一点?

最佳答案

这是缓冲 I/O 中的正常行为。同花顺不会发生任何奇怪的事情。

但是,在这种情况下,您不应该乱用标准输出。使用fopen 打开您的文件,您将获得一个FILE 指针。在 fprintf 等函数中使用此指针可以直接在其中打印,如果需要立即得到结果,则刷新它。完成后不要忘记使用 fclose 关闭文件。

关于c - 标准输出重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7780555/

相关文章:

.htaccess - 重定向所有内容,但有异常(exception)

json - 解码大流 JSON

c - 如何使包含在不同类线程中的全局变量在 c 中安全

c - 如何计算 C 中 fork() 系统调用的运行时间?

c# - 如何从重定向的网址下载文件?

java - 为什么 java DirectoryStream 执行这么慢?

c++ - 检查流是否以换行符结尾

c - C 中的登录模拟器,取消引用不完整类型错误

我可以使用 xmlzipio 通过 xmlReadMemory 从内存中读取 xml 吗?

php - 使用 error_page 检索 REDIRECT_STATUS