我有一个execve系统调用来覆盖我的curernt程序与另一个。代码工作正常,但我的要求是通过fork系统调用来更改此execve系统调用。我正在尝试如下:execve:将execve调用转换为叉
pid_t child_pid;
child_pid = fork();
if(child_pid == 0) {
if (-1 == execve(...)) //Normal previous execve call
{
.............
}
}
else
{ //fork parent process
exit(0);
}
我不确定当我们用fork替换execve系统调用时应该注意哪些事情。在我的子进程中,我调用现有的execve调用来维持原始流(如果没有fork),但是父进程应该怎么做 - 我通常应该退出还是需要等待子进程退出/死亡。 execve调用将当前进程与新进程重叠,因此不存在父进程/子进程的问题。