導航:首頁 > 編程系統 > linuxfork目錄

linuxfork目錄

發布時間:2024-03-19 05:42:49

❶ red hat 內核2.6.32的kernel/fork.c在哪裡

裝了源碼的話,find -name fork.c 找下就知道了

linux fork 會共享哪些東西

fork()不僅創建出與父進程代碼相同的子進程,而且父進程在fork執行點的所有上下文場景也被自動復制到子進程中,包括:
—全局和局部變數
—打開的文件句柄
—共享內存、消息等同步對象
由於pipe調用相當於創建了2個文件句柄,因此在fork後這兩個句柄也被自動復制到子進程中,對這兩個句柄的操作效果與在主進程中的操作效果是一致的,這就使父子進程之間很容易通過該機制實現數據交換,如:
假設pipe產生的句柄為P[0],P[1],在fork後父子進程都擁有了P[0],P[1]句柄,那麼:
—父進程可向自己的P[1]中寫入數據,子進程從P[0]中即可讀出該數據;切記此時父進程不能也從P[0]讀數據,否則自己寫入的數據可能先被自己讀走了
—反之亦然,子進程向P[1]中寫入數據後,父進程從P[0]中可讀出該數據;切記此時子進程不要從P[0]讀走數據
你可能難以理解為什麼進程內部的數據讀寫會被傳遞到另一個進程,但別忘了,pipe匿名管道和文件,socket等一樣是屬於操作系統的管理對象,對其進行讀寫都是由OS的內核代碼來進行控制的。在父進程調用pipe創建出管道後,該管道對象是存儲在OS內部的,父進程得到的P[0]和P[1]都只是對該對象的引用(相當於指針);在fork出子進程後,子進程復制出的也只是同一個指針,所指向的還是OS中的同一個對象,這就是為什麼父子進程能通過其進行互相通信的原因。

閱讀全文

與linuxfork目錄相關的資料

熱點內容
溫州銀行網貸在哪個app 瀏覽:307
qq郵箱怎麼把文件另存 瀏覽:489
不加qq怎麼發文件 瀏覽:183
征途app安裝包在哪裡 瀏覽:291
做網站有哪些公司 瀏覽:332
為什麼win10系統刪除不了文件夾里 瀏覽:367
華為網站打不開是什麼原因 瀏覽:335
為什麼編程時大腦空空 瀏覽:36
電腦上怎麼保存ppt文件 瀏覽:907
男性董事總人數怎麼獲得數據 瀏覽:475
java矩陣特徵分解 瀏覽:98
gxworks2怎麼給plc編程 瀏覽:6
文件編輯器怎麼安裝軟體 瀏覽:256
嘉興長沙少兒編程培訓班哪個好 瀏覽:701
win10我的文檔圖標不見了 瀏覽:306
處理linux虛擬機亂碼 瀏覽:745
python開發編程軟體如何升級程序 瀏覽:53
怎樣把蘋果電腦中的文件拷貝到u盤 瀏覽:955
藍屏情況下如何刪除文件 瀏覽:385
topo的文件怎麼打開 瀏覽:466

友情鏈接