使用exec/fork运行外部进程

Use exec/fork to run external process

本文关键字:外部 进程 运行 fork exec 使用      更新时间:2023-10-16

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

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

我的第一个问题是,我需要从shell命令传递到exec的输出,我不知道如何得到它。在运行上面的代码后,主程序也重复了自己,我不确定为什么。

args[0]可能是正在运行的程序的名称,因此它将分叉并执行自己。

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