程序建立主要函式

2021-07-10 07:13:39 字數 501 閱讀 6473

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函式的...