C語言 fork函式

2021-07-26 13:00:56 字數 1146 閱讀 1255

一、fork函式的使用

fork函式被宣告在unistd.h

標頭檔案中,包含

#include

這個標頭檔案即可呼叫。

int main ()   

else

printf("統計結果是: %d/n",count);

return 0;

}

fork()之後的語句父程序和子程序都會執行,新主要用pid來區分,程序也會分配到新的記憶體空間,上面的count是兩個程序中的不同記憶體中的變數,

沒有任何意外,上面的程式

執行結果當然是:

執行結果:

i am the parent process, my process id is 3323

我是孩子他爹

統計結果是: 1

i am the child process, my process id is 3324

我是爹的兒子

統計結果是: 1

程序執行不一定是上面這個順序,要看系統的程序排程策略。

二、fork函式結合與或邏輯的實踐

遇到乙個又去的試題:

以下一段程式中,main程序共建立了多少個子程序?

#include #include int main(int argc, char* argv)  

答案是:總共有20個程序,除了main程序,還有19個子程序。

分析如下:

main函式中第2行和第3行**順序先後不會影響結果,故提出第2行**

fork() && fork() || fork(),標記為 a && b || c,

根據語法有

a非0(a父程序),則執行b,有 1 && 1 和 1 && 0 || 1 及1 && 0 || 0;

a為0(a子程序),則不執行b,而執行c,有 0 && || 1 和0 && || 0;

共有5個分支,也就是說,fork() && fork() || fork()

共建立了5個程序,而前面還有2個fork,所以程序數為:

4*5=20個程序。

so.......................

c語言基礎函式 fork

fork 函式用來建立子程序。下面是乙個簡單的例子 include include int main int argc,const char argv else 列印的結果如下 pid 552 father pid 549 child pid 552以下是一些注意點 1 之前在vs上想要用,結果發現...

c 中的fork函式 FORK()函式

乙個程序,包括 資料和分配給程序的資源。fork 函式通過系統呼叫建立乙個與原來程序幾乎完全相同的程序,也就是兩個程序可以做完全相同的事,但如果初始引數或者傳入的變數不同,兩個程序也可以做不同的事。乙個程序呼叫fork 函式後,系統先給新的程序分配資源,例如儲存資料和 的空間。然後把原來的程序的所有...

fork 函式 fork 函式的使用

fork的意思是個叉子,在unix及其衍生版linux中,用於建立子程序,現在看一下fork函式的基本用法。include includeint main printf c b fflush stdout fork printf c c fflush stdout 上圖的輸出是什麼呢?答案是 bab...