强制程序在重定向时刷新其标准输出 投稿者 5 年前 我有一个封闭的源程序,打印输出到标准输出.我需要解析输出.所以我将输出重定向到fifo(我可以在父进程中读取,分叉和执行二进制文件)使用dup2然后执行程序.问题是文件中的fprintf调用变为缓冲,因为它现在正在写入文件. 我试着在调用exec之前在stdout上用_IONBF调用setvbuf.但问题仍然存在. 为什么setvbuf在我的情况下没有帮助? 我如何强制输出刷新? 百度未收录 退出移动版
我有一个封闭的源程序,打印输出到标准输出.我需要解析输出.所以我将输出重定向到fifo(我可以在父进程中读取,分叉和执行二进制文件)使用dup2然后执行程序.问题是文件中的fprintf调用变为缓冲,因为它现在正在写入文件. 我试着在调用exec之前在stdout上用_IONBF调用setvbuf.但问题仍然存在. 为什么setvbuf在我的情况下没有帮助? 我如何强制输出刷新? 百度未收录