源码

强制程序在重定向时刷新其标准输出


我有一个封闭的源程序,打印输出到标准输出.我需要解析输出.所以我将输出重定向到fifo(我可以在父进程中读取,分叉和执行二进制文件)使用dup2然后执行程序.问题是文件中的fprintf调用变为缓冲,因为它现在正在写入文件.

我试着在调用exec之前在stdout上用_IONBF调用setvbuf.但问题仍然存在.

为什么setvbuf在我的情况下没有帮助?

我如何强制输出刷新?

(0)

本文由 投稿者 创作,文章地址:https://blog.isoyu.com/archives/qiangzhichengxuzaizhongdingxiangshishuaxinqibiaozhunshuchu.html
采用知识共享署名4.0 国际许可协议进行许可。除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。最后编辑时间为:9 月 24, 2019 at 03:40 上午

热评文章