使用exec / fork运行外部进程

时间:2011-10-09 04:42:32

标签: c++ exec fork

我正在使用C ++并尝试在外部进程中运行shell命令。这是我到目前为止的代码:

pid_t pid;
pid = fork();
if(pid == 0){ 
    execv(args[0],args);
} else {
    wait();
}

我的第一个问题是我需要从传递给exec的shell命令获取输出,我不知道如何得到它。在运行上面的代码之后,主程序也会复制自己,我不确定原因。

1 个答案:

答案 0 :(得分:1)

args[0]可能是正在运行的程序的名称,所以它会fork,然后执行。

为了收集输出,您需要安排明确传递它。 Unix pipe()调用经常用于此。