fork---fork呼叫執行兩次返回,從父程序和子程序中分別返回。
vfork---並不完全複製父程序的資料段,而是和父程序共享資料段,vfork函式一般是與exec函式族的函式一起使用的,用來建立執行另乙個程式的新程序。
exec---exec函式可以執行新的程式,以新的程式替代原有程序。
_ _clone---fork函式的變形,對父程序的共享資源提供了更多的控制。
#include
int _ _clone(int(*fn)(void )arg),void *child_stack,int flags,void *arg);
flas標識的選取
clone_vm 繼承父程序的虛擬儲存器屬性
clone_fs 繼承父程序的根目錄,當前目錄,許可權掩碼
clone_files 繼承父程序的檔案描述符
clone_pid 繼承父程序的檔案鎖,程序號及時間片
clone_sifhand 繼承父程序的訊號處理程式
建立程序 fork函式
最近,我在linux中學到了乙個神奇的函式,名為fork 函式,它的作用是建立程序。它的神奇之處在於呼叫fork 函式時,系統會建立乙個與原來程序幾乎完全相同的程序,大致的意思就是兩個程序可以做完全相同的事,但如果初始引數或者傳入的變數不同,兩個程序也可以做不同的事 就相當於是轉殖了乙個自己。先來看...
程序建立函式fork
函式原型 pid t fork void 標頭檔案 include 函式功能 建立乙個子程序 返回值 1.1 建立失敗 2.0 返回的是子程序 3.0 返回的是父程序,返回值是子程序 id函式特性 1.呼叫一次,會有兩個返回值 2.先返回哪個值,不確定,一般先返回父程序 3.使用者可以通過延時函式,...
建立程序庫函式fork
unix作業系統提供了庫函式fork來建立乙個新的程序,本文分析一下fork呼叫背後發生了什麼。例如 int pid fork 從fork函式返回,父程序 pid 0 和子程序 pid 0 擁有相同的user leverl context 包括data,text以及stack 的拷貝。fork函式的...