程式設計模擬孤兒程序

2021-10-16 22:36:15 字數 937 閱讀 1111

當父程序不等待子程序退出,在子程序退出前就結束了生命,此時子程序就變成了孤兒程序。在linux系統中為了避免孤兒程序,init(pid=1)專門收留孤兒程序,變成孤兒程序的父程序。

1 #include 

2 #include

3 #include

4 #include

5/*孤兒程序*/

6int

main()

716if(pid==0)

1731}32

}33return0;

34}

@embed_learn:

~$ .

/a.out

the father process id running ! fatherpid=

4868

the child process is running ! childpid=

4869 fatherpid=

1 clc@embed_learn:

~$ the child process is running ! childpid=

4869 fatherpid=

1 the child process is running ! childpid=

4869 fatherpid=

1 the child process is running ! childpid=

4869 fatherpid=

1 the child process is running ! childpid=

4869 fatherpid=

1 the child process will be exit !

從列印到的資訊可以看到,父程序沒有退出時(子程序並沒有退出),父程序的pid=4868.退出後父程序的pid=1.說明init收留了子程序。

模擬實現殭屍程序, 孤兒程序

在linux下程序有多種狀態以下就是我列舉的一些狀態 r執行狀態 running 並不意味著程序一定在執行中,它表明程序要麼在執行中要麼在執行佇列裡。s睡眠狀態 sleeping 意味著程序在等待事件的完成 這裡的睡眠有時候也會叫可中斷睡眠 interruptible sleep d磁碟休眠狀態 d...

模擬實現殭屍程序, 孤兒程序

殭屍狀態是乙個比較特殊的狀態。當程序退出並且父程序 使用wait 系統呼叫 沒有讀取到子程序退出的返回 時就會產生殭屍程序。殭屍程序會終止狀態保持在程序表中,並且會一直在等待父程序讀取退出狀態 所以,只要子程序退出,父程序還在執行,但父程序沒有讀取子程序狀態,子程序進入z狀態。從上圖我們可以看出,1...

孤兒程序 孤兒程序組 守護程序

1.孤兒程序的定義 定義1 該程序組的每個成員的父程序要麼是該組的成員,要麼在其它會話中。定義2 乙個程序不是孤兒程序組的條件是 該組有乙個程序,其父程序在屬於同一會話的另乙個組中。只要能夠滿足上面其中的任乙個定義,則此程序組就是孤兒程序組。可能讀起來比較拗口,看圖 1 中的例子可能會清楚點。圖 1...