#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...