現在のプログラムを別のプログラムでオーバーレイするためのexecveシステムコールがあります。コードは正常に機能しますが、私の要件は、このexecveシステムコールをforkシステムコールに変更することです。私は以下のようなことを試みています:
pid_t child_pid;
child_pid = fork();
if(child_pid == 0) {
if (-1 == execve(...)) //Normal previous execve call
{
.............
}
}
else
{ //fork parent process
exit(0);
}
execveシステムコールをforkに置き換えるときに、注意すべき点がわかりません。私の子プロセスでは、元のフローを維持するために既存のexecve呼び出しを呼び出しています(フォークがないかのように)が、親は何をすべきですか?通常終了するか、子プロセスが終了/終了するのを待つ必要があります。execve呼び出しは、現在のプロセスを新しいプロセスでオーバーレイするため、親/子プロセスの問題はありません。