初識linux 中的fork

2021-08-08 08:54:29 字數 417 閱讀 8873

fork函式將執行著的程式分成2個(幾乎)完全一樣的程序,每個程序都啟動乙個從**的同一位置開始執行的執行緒。這兩個程序中的執行緒繼續執行,就像是兩個使用者同時啟動了該應用程式的兩個副本。

1)在父程序中,fork返回新建立子程序的程序id;

2)在子程序中,fork返回0;

3)如果出現錯誤,fork返回乙個負值;

在fork函式執行完畢後,如果建立新程序成功,則出現兩個程序,乙個是子程序,乙個是父程序。在子程序中,fork函式返回0,在父程序中,fork返回新建立子程序的程序id。我們可以通過fork返回的值來判斷當前程序是子程序還是父程序。

引用一位網友的話來解釋fpid的值為什麼在父子程序中不同。「其實就相當於鍊錶,程序形成了鍊錶,父程序的fpid(p 意味point)指向子程序的程序id, 因為子程序沒有子程序,所以其fpid為0.

Linux中fork 函式解析

1.fork 函式 通過系統呼叫建立乙個與原來程序幾乎完全相同的程序,這個新的程序就成為子程序。乙個程序呼叫fork 函式以後,系統先給新的程序分配資源,例如儲存資料可 空間。然後把原來程序的值都複製到新的程序當中,只有少數值與原來不同。呼叫fork 函式之後,fork 之後的 一定是兩個程序同時執...

Linux中的程序建立函式fork

linux中的程序通過fork建立,並通過exec執行,分為兩步。在linux中所有的程序都是pid為1的init程序的子程序,核心在系統啟動的最後階段啟動init程序。系統中的所有程序都有乙個父程序,在程序描述符中有指向父程序的指標,具有同乙個父程序的程序稱為兄弟程序,同時每個程序描述符中還有乙個...

快速理解 Linux 中 的 fork 函式

1 fork的作用 當乙個程序呼叫fork 函式時,會產生乙個新程序 即子程序 而自己本身也還存在,作為父程序。子程序相當於父程序的複製,擁有與父程序相同的資料結構 即 資料 資料空間 但資料結構並不是共享的,只有 段是共享的。ps 共享的意思指用同乙個資料結構,子程序 父程序改變該資料結構都會對他...