如何在C中执行exec命令时并行执行exec命令的中间结果?

时间:2010-08-14 04:02:26

标签: c linux

我必须从我的C程序中执行任何其他程序,它连续发送消息 (中间结果)在stdout上。这些消息(中间结果)我可以在exec完成执行后检索(其他程序终止)但我的问题是那个 如果正在执行exec命令,那么如何逐行检索这些消息(中间结果)? 根据这些中间结果,我必须为exec命令提供一些输入(为其他程序提供输入),该怎么做?

2 个答案:

答案 0 :(得分:4)

popen(3)将启动一个程序,返回一个FILE*,您可以使用它来读取进程的输出。

答案 1 :(得分:3)

pipe(2)。使用调用stdin的子进程的exec的输入文件描述符。

要移动文件描述符,请执行

dup2( my_pipe[0], stdin);
在叉子后面的孩子。

或者,如Chao建议的那样使用popen(3)

相关问题