fork函式的一些小結

2022-01-29 10:48:52 字數 647 閱讀 5454

今天遇到乙個這樣的問題,假設父程序有乙個變數s,fork後,子程序中的變數s位址是否和父程序中的變數s

是相同的?

再學作業系統的時候,知道fork是採用的寫時複製,所以如果子程序或者父程序不對變數s做修改的話,它們應該

是指向同一塊物理記憶體,如果有修改,那麼它們會指向不同的物理記憶體,但虛擬記憶體位址還是相同的,所以在子程序中

輸出&s和在父程序中輸出&s,結果是一樣的。

下面補充兩個程式的執行結果:

#include "

stdio.h

"#include

"unistd.h

"int

main()

else

return0;

}

執行結果:

上面的**並未修改s的值,下面的**修改了s的值,此時再測試

#include "

stdio.h

"#include

"unistd.h

"int

main()

else

return0;

}

執行結果:

nginx fast cgi 一些小結

fpm children make line 352 child 20477 pool default started fpm event loop line 105 libevent entering main loop 的解決方案 這個問題是系統最大開啟檔案數與php fpm設定不一樣所致 1....

Perl Perl module的一些小結

perl module 關於perl module改如何使用,如何編寫,現在初步有一些膚淺的體會,總結如下 1.如何引用不在系統預設路徑中的module?方法1 使用lib use lib qw your path to module 貌似這幾乎等價於begin 方法2 修改 inc begin u...

fork函式小結

在unix系統中,只有乙個系統呼叫可以用來建立新程序 fork。由fork建立的新程序被稱為子程序。fork函式被呼叫一次,但返回2次。2次返回的區別是子程序的返回值是0,而父程序的返回值是新建立的額子程序的程序id。子程序和父程序繼續執行fork呼叫之後的指令。子程序是父程序的副本。例如,子程序獲...