我有一個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調用將當前進程與新進程重疊,因此不存在父進程/子進程的問題。