簡體   English   中英

execve:將execve調用轉換為fork

[英]execve : convert execve call to fork

我有一個execve系統調用,將我的currnt程序與另一個程序疊加。 代碼工作正常,但我的要求是使用fork系統調用更改此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調用在當前進程上覆蓋了一個新進程,因此沒有父/子進程的問題。

隨你(由你決定。 如果您不需要等待,則可以退出,在這種情況下,子進程將變為孤立的。

如果需要知道子進程的退出狀態 ,或者在子進程退出需要執行某些操作,請在父進程中調用wait()

如果不需要以上任何一種,則可以退出父進程。 孤立的進程將通過init進行重新父代化,因此不會產生任何不利影響。

 should I normally exit or I need to wait for the child process to exit/die

這取決於您和您的要求,如果需要,您可以使用wait(...)等待子進程,請訪問http://publib.boulder.ibm.com/infocenter/iseries/v5r3/index.jsp ?topic =%2Fapis%2Fwait.htm

也可以看看http://linux.die.net/man/2/fork

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM