1. 程式人生 > >Linux系統fork函式所產生的檔案共享

Linux系統fork函式所產生的檔案共享

當我們瞭解了fork函式之後,知道子程序會拷貝父程序的資訊,那如果開啟檔案進行檔案處理和fork在同一函式中會發生什麼呢?

我們先建立一個在程式中開啟的檔案:string

檔案內容:

(1)先open後fork

 其執行結果如下圖:

可以看到父子程序共列印了string檔案中的6個字元,這是因為父程序所有開啟的檔案描述符(可以檢視檔案描述符部落格)都被複制到子程序中。先開啟檔案,後fork這使父子程序共享一個檔案表項。情況如下:

(2)先fork後open

 其執行結果如下圖:

可以看到父子程序分別列印了string檔案中的3個字元,並且都是前3個字元。說明,父子程序都是各自開啟檔案並且互不干擾。情況如下: