Linux fork和vfork 的區別

2021-10-19 13:27:56 字數 888 閱讀 6245

vfork函式也可以建立程序,與fork有什麼區別

關鍵區別一:

vfork直接使用父程序儲存空間,不拷貝。

關鍵區別二:

vfork保證子程序先執行,當子程序呼叫exit退出後,父程序才執行。

#include 

pid_t fork

(void);

fork函式呼叫成功,返回兩次

返回值為0

, 代表當前程序是子程序

返回值非負數,代表當前程序為父程序

呼叫失敗,返回-

1

#include 

#include

pid_t vfork

(void);

返回值:成功則在父程序返回新建立的子程序id

,而在新建立的子程序中則返回0

,失敗則直接返回-

1。

/***********************fork函式*************************/

#include

#include

#include

int main()

else

if(pid ==0)

return0;

}

/***********************vfork函式*************************/

#include

#include

#include

int main()

else

if(pid ==0)

}return0;

}

linux fork函式與vfork函式

一 fork 1.呼叫方法 include include pid t fork void 正確返回 在父程序中返回子程序的程序號,在子程序中返回0 錯誤返回 1 子程序是父程序的乙個拷貝。即,子程序從父程序得到了資料段和堆疊段的拷貝,這些需要分配新的記憶體 而對於唯讀的 段,通常使用共享記憶體的方...

fork,vfork,fork和vfork區別詳解

一 fork pid t fork void 功能 建立乙個新程序。返回值 一次呼叫兩次返回,子程序返回0,父程序返回子程序id,出錯返回 1。1 兩次返回分別是程序id和0,父程序會拿到子程序的id,子程序返回0,藉此可以分別出父子程序,編寫不同的處理分支。2 通過fork建立的子程序就是父程序的...

vfork和clone 紅燈和圍牆

很多人都知道linux下有個終極函式,就是fork,它幾乎是一切的源泉,是個創造者,除了核心本身,所有的使用者空間程式都是它啟動的,它的姊妹還有 clone和vfork,按照機制和策略的原則,這兩個函式確實不應該提供,但是考慮到現代作業系統中最重要的概念 執行緒,linux必須對它進行全面支 持,因...