C語言在Linux下建立乙個殭屍程序

2022-10-08 01:18:09 字數 702 閱讀 1765

第三章程式設計題3.12

每乙個程序都有乙個pcb(程序控制塊),其中包含程序執行的狀態等一系列資訊。

當父程序fork()出乙個子程序,子程序執行結束後作業系統會**子程序使用的記憶體、開啟的檔案等資源。但是,依舊會保留pcb,因為其中包含子程序結束時的狀態等資訊,按理來說作業系統想把這個資訊傳遞給它的父程序。因此,父程序呼叫wait()就可以得到子程序的退出資訊了,子程序同時也完全消失。

考慮這樣一種情況,子程序exit(),父程序還沒有wait(),這時子程序除了pcb表沒有任何資源,這時子程序就被稱為殭屍程序(zombie)。

在考慮另外一種情況,父程序最終也沒有呼叫wait()就結束了,這時子程序沒了父程序,它就是孤兒程序。這時作業系統會把init程序(pid=1)作為子程序的父程序,init程序定期呼叫wait(),以**孤兒程序。

寫乙個函式,fork()乙個子程序,子程序結束時父程序在等待,這時子程序就是殭屍程序。

linux 下建立乙個C 工程

熟悉了windows平台下編譯乙個c 工程後,你是否會提出這樣乙個問題 在linux平台下又如何編譯乙個c 工程呢?希望本文能給正在學習或想學習linux c 開發的你起到拋磚引玉的作用。首先,你必須有乙個linux開發環境,這樣才能進行c 開發。筆者用的是安裝在虛擬機器中的ubuntu 9.04,...

在Linux下如何保證只建立乙個程序

在linux下,如果不加限制,同乙個程式,可以有多個執行例項,也稱之為程序 它們都有一樣的名字,執行著一樣的 段 不同的是,它們擁有不同的pid以及程序空間 有時候,希望同一時間只能建立乙個程序 下面這段示例 就加了這樣乙個限制 核心點 1.程序在啟動時,判斷 tmp my pid file是否存在...

Linux下如何手動建立乙個帳戶

新增使用者賬戶基本組 新增賬戶資訊 新增賬戶密碼 複製家目錄 修改家目錄許可權 建立賬戶完成,進行登入測試 這裡以建立mqsql賬戶為例。賬戶名 mysql 基本組 mysql 密碼 mysql 在 etc group檔案下追加使用者基本組 基本上合使用者名稱一致 etc group檔案存放使用者組...