Linux中殭屍程序和孤兒程序詳解

2022-09-26 15:27:12 字數 486 閱讀 4682

1、殭屍程序

乙個子程序在其父程序沒有呼叫wait()或waitp程式設計客棧id()的情況下退出,這個子程序就是殭屍程序。如果其父程序還存在而一直不呼叫wait,則該殭屍程序將無法**,等到其父程序退出後該程序將被init**。

執行結果

2、孤兒程序

乙個父程序退出,而它的乙個或多個子程序還在執行,那麼那些子程序將成為孤兒程序。孤兒程序將被init程序(程序號為1)所收養,並由init程序對他們完成狀態收集工作。

執行結果

然而子程序一直在呼叫,也不能被ctrl^c掉。。

3、註冊函式atexit,在程序退出時呼叫

執行結果

由結果可見,當我們用註冊函式呼叫fun1、fun2、fun3時它程式設計客棧在整個程序退出時會倒著給我們列印這些函式中的內容,在最後退出時呼叫第乙個註冊函式並列印資訊。

總結本文標題: linux中殭屍程序和孤兒程序詳解

本文位址: /os/linux/193449.html

Linux殭屍程序和孤兒程序

程式執行到結尾的時候,有兩種情況。子程序先退出,或者父程序先退出。如果父程序先退出的話,那麼子程序就會變成孤兒程序,最後被init接管,我們來看乙個例子。我們可以看到子程序的父程序變成了init,孤兒程序並不可怕,它們最後會被統一銷毀。但是如果子程序先退出呢?子程序先退出有兩種情況 1.呼叫wait...

殭屍程序和孤兒程序

殭屍程序 乙個子程序在其父程序還沒有呼叫wait 或waitpid 的情況下退出。這個子程序就是殭屍程序。孤兒程序 乙個父程序退出,而它的乙個或多個子程序還在執行,那麼那些子程序將成為孤兒程序。孤兒程序將被init程序 程序號為1 所收養,並由init程序對它們完成狀態收集工作。殭屍程序將會導致資源...

殭屍程序和孤兒程序

什麼是殭屍程序?乙個子程序在其父程序沒有呼叫wait 或waitpid 的情況下退出。這個子程序就是殭屍程序。如果其父程序還存在而一直不呼叫wait,則該殭屍程序將無法 等到父程序結束後,會被init 驗證 include include includeint main 3秒後查詢其程序資訊 通過上...