[英]Error with child process & wait `C`
在下面的代碼中,如果在創建子進程時遇到問題,或者子進程發生問題,則wait(&status)
會發生什么?
pid_t pid;
int status;
if(pid=fork()){
printf("Parent Process\n");
wait(&status);
} else... child process here
如果創建子進程有問題,fork將返回-1
,因此該代碼將永不wait
。
如果子進程發生問題,則等待將返回,您可以觀察status
。
如果無法創建子級,則fork()將返回-1,之后應查看errno。 此處未創建錯誤過程。 您的代碼不會檢查這種情況。
如果孩子被創建並死亡,wait()將返回終止進程的PID,狀態中給出了孩子死亡的原因。 請參見手冊頁,以等待如何從狀態中提取含義。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.