0
我有這樣的代碼:C++檢查兒童狀況
fork();
if child:
execvp("sth"); //Just returns if errors
if parent:
save child pid;
在花葯功能我要檢查,如果孩子完成或沒有,我不希望使用waitpid
。有沒有其他方法可以做到這一點?
我有這樣的代碼:C++檢查兒童狀況
fork();
if child:
execvp("sth"); //Just returns if errors
if parent:
save child pid;
在花葯功能我要檢查,如果孩子完成或沒有,我不希望使用waitpid
。有沒有其他方法可以做到這一點?
您可以設置一個信號處理程序來處理SIGCHLD,該信號處理程序將在子結束時傳遞給父項。從技術上講,即使它是異步調用,也是「另一個功能」。即使在獲得信號後,您仍然應該使用waitpid
,如果您有多個孩子,這是我知道您將能夠區分他們的唯一方法。
我終於用'waitpid'和'WNOHANG',解決了我的一些問題。 –
爲什麼你不想使用'waitpid()'? –
http://linux.die.net/man/2/waitpid如果你使用'options = WNOHANG',waitpid'不會阻塞(如果沒有孩子退出,立即返回)。 –
我用'waitpid'和WNOHANG在最後解決我的問題一些如何。 –