c語言基礎函式 fork

2021-07-10 07:35:41 字數 786 閱讀 5543

fork()函式用來建立子程序。

下面是乙個簡單的例子:

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

}

列印的結果如下:

pid: 552

father pid: 549

child pid: 552

以下是一些注意點:

1) 之前在vs上想要用,結果發現根本沒有這個標頭檔案;因為是類unix系統才有的;上面的**在mac os上測試ok。

2) fork()是用來建立子程序的,建立之後子程序是父程序的副本,子程序獲得父程序的資料空間、堆和棧的副本,注意兩者並不是共享的。父子兩者僅共享**段。這個是以前的實現,現在的話一般不會直接去複製,而是寫時複製(copy-on-write)。

3) fork()之後父子程序的執行順序是不確定的。

4) fork()之後父程序的所有開啟檔案描述符都被複製到子程序中,父子程序的每個相同的開啟描述符共享乙個檔案表項。

fork()的兩種用法:

1. 乙個父程序希望複製自己,使父子程序同時執行不同的**段。

比如在網路服務程式中,父程序等待客戶端的服務請求。當請求到達時,父程序呼叫fork()使子程序處理此請求;而父程序繼續等待下乙個請求。

2. 乙個程序要執行乙個不同的程式。

這個在shell下比較常見,這種情況下,fork()之後一般立即接exec函式。

C語言 fork函式

一 fork函式的使用 fork函式被宣告在unistd.h 標頭檔案中,包含 include 這個標頭檔案即可呼叫。int main else printf 統計結果是 d n count return 0 fork 之後的語句父程序和子程序都會執行,新主要用pid來區分,程序也會分配到新的記憶體...

c 中的fork函式 FORK()函式

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

C語言基礎 函式

一 函式 掌握 1 定義 是乙個實現某種功能的 塊。作用 1 實現 復用,減少冗餘 2 維護方便。暫停停止 快進快退 2 函式的分類 1 main函式 每個c程式有且僅有乙個 2 庫函式 3 自定義函式 3 函式的宣告 定義和使用 掌握 1 宣告 格式 返回值型別 函式名 形式引數列表 函式三要素 ...