Unix 父子程序以及建立子程序

2021-10-09 17:07:20 字數 678 閱讀 2473

unix系統中程序存在父子關係,父程序擁有多個子程序,子程序只能有乙個父程序。pid為0的程序為排程程序,也是根程序。系統中所有的程序構成了乙個以排程程序為根的程序樹。

pid為1的程序是init,init程序負責系統的初始化,同時也負責**孤兒程序,稱為孤兒院程序。

當父程序通過fork建立子程序,會複製父程序中的資料區、bss區、堆疊、命令列引數以及環境變數表到子程序中,只有**區是共享的。為了建立子程序能更加的輕量,fork建立子程序時,不會進行複製的動作,子程序和父程序共享記憶體區,只有當子程序對資料進行寫操作時,才會從父程序的記憶體區中複製到子程序的記憶體區,並進行寫操作,複製以記憶體頁為單位進行複製。這樣就達到了延遲複製載入,減少了系統開銷。

標頭檔案:#include

函式:pid_t fork(void);

fork函式如果呼叫成功,在父程序中返回子程序的pid,子程序中返回0;如果呼叫失敗,則返回-1。當呼叫fork()函式之後,父子程序同時執行後續**。

#include

#include

intmain

(void)if

(pid ==0)

else

}

子程序複製父程序的除**區的其他記憶體區域,所以子程序修改的值是父程序的副本,不會影響到父程序。

Unix建立子程序

fork函式用於在已存在程序中新建程序。fork函式呼叫一次,返回兩次。當fork返回值為0時,當前程序為fork函式建立的子程序 當fork函式返回值大於0時,當前程序與fork函式呼叫前的程序一致,我們稱之為父程序 當fork函式返回值為 1時,fork函式建立子程序失敗。系統無法保證父程序與子...

程序以及狀態 程序的建立

程式 例如 py這是程式,是乙個靜態的 程序 乙個程式執行起來後,用到的資源 稱之為程序,它是作業系統分配資源的基本單元。不僅可以通過執行緒完成多工,程序也是可以的 乙個程式可以對應多個程序,如qq乙個程式,可以開啟多個qq則是多個程序。程序是擁有資源,如網路 記憶體等 工作中,任務數往往大於cpu...

linux c建立子程序

前言 了解fork 函式 乙個程序呼叫fork 函式建立該程序子程序,系統會為該子程序分配資源儲存資料和 的空間,父程序將資料和 複製給子程序,子程序按父程序 重新執行,即轉殖了父程序並重新執行。fork 函式的返回值,1即fork失敗,值為0時即子程序,返回值大於0即子程序id c 樣例 incl...