fork()後,父子進程變量地址相同?

打印出來的 i 的地址是虛擬地址而不是物理地址(總線地址)。

子進程“繼承”父進程的變量,其地址總是一樣的,因爲在fork時整個虛擬地址空間被複制,但是虛擬地址空間所對應的物理內存卻沒有複製(這個時候父子進程中變量 i 對應的虛擬地址和物理地址都相同)。等到虛擬地址空間被寫時,對應的物理內存空間被複制(這個時候父子進程中變量 i 對應的虛擬地址還是相同的,但是物理地址不同),這就是"寫時複製"。


的確是永遠一樣的,
這個虛擬地址不會變,也決不能變,
你想想,地址要是變了,你那些指針,函數,變量尋址不是全都不能用了?
只是物理地址不一樣罷了


http://bbs.chinaunix.net/thread-1987648-1-1.html  

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

有點懂了的樣子。 不去糾結地址了。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章