linux建立程序fork的方法步驟

2022-08-27 02:51:11 字數 1767 閱讀 2082

fork建立程序

函式原型如下

#include// 必須引入標頭檔案,使用

fork

函式的時候,必須包含這個標頭檔案,否則,系統找不到

fork

函式pid_t fork(void); //void代表沒有任何形式引數

父程序與子程序

1.掌握概念,什麼是父程序,什麼是子程序

除了0號程序(系統建立的)之外,

linux

系統中都是由其他程序建立的。建立新程序的程序,即呼叫

fork

函式的程序為父程序,新建的程序為子程序。

2.fork函式不需要任何引數,對於返回值有三種情況

1)對於父程序,

fork

函式返回新建子程序的

pid;

2)對於子程序,

fork

函式返回 0;

3)如果出錯,

fork

函式返回 -1。

建立程序案例(fork.c)

#include

#include

#include

int main(void)

if(pid == 0)

if(pid > 0)

return 0;

}在shell中編譯該程式如下:

gcc fork.c -o fork

在shell中執行該程式如下:

./fork

最後輸出結果:

再次執行結果如下:

父子程序共享資源

1.父子程序共享**段(可讀的)

父程序在建立子程序的時候,子程序會把父程序的位址空間裡的資料段。和棧堆進行複製,但是沒有複製**段。

2.詳細可看具體**示例(

fork_1.c

)fork_1.c

#include

#include

#include

int global; // 全域性變數在資料段中

int main()

if( pid == 0 )

sleep(2) ;

printf("the parent, data : %d, stack : %d, heap : %d\n", global , stack , *heap);

return 0 ;

}執行結果如下:

fork函式出錯的情況

1.fork函式返回值為

-1即建立失敗,有兩種情況可能會導致

fork

函式出錯;

2.系統中已經有太多的程序存在;

3.呼叫

fork

函式的使用者的程序太多。

Linux 程序建立 fork

1 fork 函式原型 pid t fork void 函式返回值型別為 pid t,實質是 int 型別,linux 核心2.4.0版本的定義是 typedef int kernel pid t typedef kernel pid t pid t 2 fork 函式的底層實現 fork vfor...

fork程序建立

fork建立子程序,fork函式返回兩個值,當為0時,則認為是子程序 塊執行區域,而不為0則是父程序 塊執行區域。我們需要知道的是,fork子程序可以與父程序共享部分程序上下文,而與此不同的是execl函式,一旦開始執行到execl函式時,啟動被呼叫的函式,後面的 則不再執行,而是直接執行呼叫的程式...

fork建立程序

1.程序的建立 fork 函式是建立子程序的函式,在主函式中呼叫fork會產生乙個子程序 列印出來的結果是 if語句是條件語句但卻兩個都列印了,兩個條件都滿足,也就是說兩個都執行,但卻不是一條執行流,那麼可以得出肯定還有乙個程序在列印另乙個。都記得fork 之後有兩個程序,乙個父程序,乙個子程序,父...