我正在使用C ++并尝试在外部进程中运行shell命令。这是我到目前为止的代码:
pid_t pid;
pid = fork();
if(pid == 0){
execv(args[0],args);
} else {
wait();
}
我的第一个问题是我需要从传递给exec的shell命令获取输出,我不知道如何得到它。在运行上面的代码之后,主程序也会复制自己,我不确定原因。
答案 0 :(得分:1)
args[0]
可能是正在运行的程序的名称,所以它会fork,然后执行。
为了收集输出,您需要安排明确传递它。 Unix pipe()
调用经常用于此。