最近寫**遇到父程序fork出的子程序,父程序退出後子程序也退出。而要求的實現機制是,父程序啟動子程序後,保證子程序能夠繼續執行,可以保證另乙個程序啟動能夠和這個子程序進行通訊操作。
2) sigint 程式終止(interrupt)訊號, 在使用者鍵入intr字元(通常是ctrl-c)時發出
因為父程序收到ctrl+c訊號導致子程序也收到這個訊號,子程序預設退出。
經驗:fork程序時建議fork兩次,如果一次的話經常會出現父程序退出子程序變成殭屍程序。**如下:
if((pid=fork())==0)
}debuging("children pid\n");
_exit(0);
}else if (pid > 0)
wait 函式父程序等待子程序退出
include include pid t wait int status pid t waitpid pid t pid,int status,int options include include pid t wait int status pid t waitpid pid t pid,int...
子程序退出,父程序為什麼要等待?
在模擬實現之前,我們首先要理解什麼是阻塞狀態?作業系統將不滿足某種條件的程序從執行佇列中拿出,將其狀態設定為其他狀態並放入等待佇列中,在此等待佇列中的程序的都處於阻塞狀態。1 殭屍程序,造成記憶體洩漏 2 父程序得管理子程序,所以父程序派給子程序的任務完成的如何,我們都需要知道,如,子程序執行完成,...
父程序與子程序管道
int main else return 0 先在父程序中建立管道,然後建立子程序,子程序複製了父程序管道檔案的檔案描述符,所以父程序和子程序各具有2個管道描述符,當在子程序中關閉讀端,這時關閉的是子程序中管道檔案的讀端,而父程序的讀端沒有關閉,這時子程序往寫段寫資料的時候,因管道讀端未完全關閉,所...