1. 程式人生 > >什麼是殭屍程序和孤兒程序?怎麼避免殭屍程序?

什麼是殭屍程序和孤兒程序?怎麼避免殭屍程序?

孤兒程序:父程序退出,子程序還在執行的這些子程序都是孤兒程序,孤兒程序將被 init 程序(進
程號為 1)所收養,並由 init 程序對它們完成狀態收集工作。
殭屍程序:程序使用 fork 建立子程序,如果子程序退出,而父程序並沒有呼叫 wait 或 waitpid 獲
取子程序的狀態資訊,那麼子程序的程序描述符仍然儲存在系統中的這些程序是殭屍程序。
 

 

 

 

避免殭屍程序的方法:
1.fork兩次用孫子程序去完成子程序的任務;


2.用wait()函式使父程序阻塞;


3.使用訊號量,在 signal handler 中呼叫waitpid,這樣父程序不用阻塞。