學習筆記 fork寫實複製

2022-05-07 16:42:09 字數 616 閱讀 3083

#include#include

#include

#include

#include

//fork程序

//變數的引申 每乙個程序有獨立的程序位址空間有更深入的理解

//寫實複製理解

//1. 子程序修改變數時拷貝

//2. 只拷貝頁 ----> linux核心記憶體管理機制

int main(void

)

if(pid > 0) //

大於0是父程序

if(0 ==pid)

printf(

"after fork\n");

return0;

}/*執行結果

----------------

sdfsd

befor fork pid:15885

parent :15885

parent num = 11

after fork

chlid :15886

chlid num = 11

after fork

-----------------

*/

複製去google翻譯

fork建立程序過程(底層實現) 和 寫實拷貝

現在我們來總結一下fork的整個處理流程。從c語言中的函式開始,它在glibc庫中會被轉換為int0x80加呼叫號的形式,觸發中斷。該中斷在系統初始化過程中註冊,它的處理函式是system call,這個函式在system call.s檔案中,在這裡面它首先壓棧一些引數,然後會根據呼叫號呼叫sys ...

學習筆記 fork實現守護程序

目標 fork的父程序作為守護程序監測子程序,如果子程序掛了,則可以實現子程序的重啟。include include include include include include include include include 共享記憶體一定要包含這個標頭檔案,否則執行會出現段錯誤 include...

Linux中關於fork 複製程序

fork 複製程序1 fork 的基本概念 乙個現有程序可以用fork 函式通過系統呼叫建立乙個新程序,該函式定義如下 include pid t fork void 返回 若成功則在子程序中返回0,在父程序中返回子程序pid,若出錯則返回 1 因此,可以通過返回值知道當前程序是父程序還是子程序。2...