《小緹娜的奇幻之地》各版本介紹與購買指南
阿新 • • 發佈:2022-03-24
孤兒程序與殭屍子程序
孤兒程序
一個父程序退出,而它的一個或者多個子程序還在執行,那麼哪些子程序將成為孤兒程序。孤兒程序將被Init(程序號為1)程序收養,並由init程序對他們完成狀態收集工作。
因init程序託管孤兒程序,故其不會有什麼危害
殭屍程序
一個程序使用fork建立子程序,如果子程序退出,而父程序並沒有呼叫wait或者waitpid獲取子程序的狀態資訊,那麼子程序的程序描述符仍然保留在系統中。這種程序稱之為僵死程序。
子程序結束後,作業系統會為其保留程序號,退出狀態,執行時間等資訊。直到父程序使用wait或者waitpid來讀取時才釋放這部分資訊,如果父程序移植不來讀取的話,那麼這段資訊將會一直保留,程序號會一直佔用。系統所能使用的程序號是有限的,如果存在大量僵死程序,將可能因沒有可用程序號而無法闖將新的程序
點選檢視程式碼
#include <sys/types.h>
#include <sys/wait.h>
pid_t waitpid(pid_t pid,int *status,int options);