linux中fork對開啟檔案的處理

2021-09-26 08:37:36 字數 613 閱讀 7315

1 子程序複製父程序的資料段、bbs段、**段、堆空間、棧空間和檔案描述符

2 對於檔案描述符採用共享的方式 後面這個例子可以清晰的看出

1 #include 2 #include 3 #include 4 #include 5 #include 

6 #include 7

8int

main()923

//父程序向檔案寫入資料

24if(write(fd,ch1,strlen(ch1))==-1)25

29//

建立新程序

結果分析:

父子程序對於區域性變數執行複製操作 而對於檔案描述符的檔案表項資訊則是共享使用。

fork父子程序對開啟檔案的共享

父子程序是共享檔案表 檔案狀態標誌 當前檔案偏移量和v節點指標 的,和相互獨立程序不一樣。詳細見unix高階環境程式設計p175.include include include include include include int main void close fd exit 1 sleep 2...

Unix程序對開啟檔案的管理

看下圖 系統維護乙個程序表,乙個程序對應程序表裡面的乙個程序項,程序項裡包含了此程序開啟的所有檔案的檔案描述符表資訊。系統為所有開啟的檔案維護一張檔案表,每個程序的每乙個檔案描述符對應乙個檔案表項。檔案表項裡有乙個v節點表項指標,指向v節點表。v節點表在記憶體中,乙個v節點表項對應乙個檔案,儲存了檔...

初識linux 中的fork

fork函式將執行著的程式分成2個 幾乎 完全一樣的程序,每個程序都啟動乙個從 的同一位置開始執行的執行緒。這兩個程序中的執行緒繼續執行,就像是兩個使用者同時啟動了該應用程式的兩個副本。1 在父程序中,fork返回新建立子程序的程序id 2 在子程序中,fork返回0 3 如果出現錯誤,fork返回...