一、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...