标签: c linux
我必须从我的C程序中执行任何其他程序,它连续发送消息 (中间结果)在stdout上。这些消息(中间结果)我可以在exec完成执行后检索(其他程序终止)但我的问题是那个 如果正在执行exec命令,那么如何逐行检索这些消息(中间结果)? 根据这些中间结果,我必须为exec命令提供一些输入(为其他程序提供输入),该怎么做?
答案 0 :(得分:4)
popen(3)将启动一个程序,返回一个FILE*,您可以使用它来读取进程的输出。
FILE*
答案 1 :(得分:3)
见pipe(2)。使用调用stdin的子进程的exec的输入文件描述符。
stdin
exec
要移动文件描述符,请执行
dup2( my_pipe[0], stdin);
或者,如Chao建议的那样使用popen(3)。