1. 程式人生 > >程序概述和記憶體分配

程序概述和記憶體分配

http://blog.csdn.net/zhangyifei216/article/details/51423580#rd

程序

一個程序的記憶體佈局是什麼樣的?

每個程序所所分配的記憶體由很多部分組成,通常我們稱之為段,一般會有如下段:

  • 文字段 包含了程序執行的程式機器語言指令,文字段具有隻讀屬性,以防止程序通過錯誤指標意外修改自身的指令。
  • 初始化資料段包含了顯示初始化的全域性變數和靜態變數,當程式載入到記憶體時,從可執行檔案中讀取這些變數的值
  • 未初始化資料段包含了未進行顯式初始化的全域性變數和靜態變數,程式啟動之前,系統將本段內所有的記憶體初始化為0。
  • 棧段是一個動態增長和收縮的段,由棧幀組成,系統會為每個當前呼叫的函式分配一個棧幀,棧幀中儲存了函式的具備變數,實參,和返回值。
  • 堆段是可在執行時動態程序記憶體分配的一塊區域,堆頂端稱作program break

注: 為什麼要區分初始化資料段,和未初始化資料段呢?,未初始化資料段簡稱為BSS段,有何含義BSS全稱為Block Started by Symbol,其主要原因在於程式在磁碟上儲存時,沒有必要為未經初始化的變數分配儲存空間,相反,可執行檔案只需要記錄未初始化資料段的位置和所需大小即可。直到執行時才分配記憶體空間。通過size命令可以顯示可執行檔案的文字段,初始化資料段,未初始化資料段的段大小資訊。

如何知道程序的文字段,初始化資料段和非初始化資料段的結束位置?

大多數UNIX實現中C語言程式設計環境提供了三個全域性符號:etext,edata,end,可在程式內使用這些符號獲取文字段,初始化資料段,未初始化資料段結尾處下一位元組的地址。程式碼如下:

<img src="data:image/png;base64,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" alt="" />

如何獲取虛擬記憶體的頁面大小?

<img src="data:image/png;base64,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" alt="" />

如何讀取任一程序的命令列引數和程式名?

通過讀取proc/PID/cmdline可以得到任一程序的命令列引數資訊,如果想獲取程式本身的命令列引數,可以使用proc/self/cmdline來讀取,對於如何獲取程序的程式名有如下兩種方法:

  • 讀取/proc/self/exe的符號連結內容,這個檔案會通過符號連結到真正的可執行檔案路徑,是絕對路徑,通過readlink可以讀取其中連結的絕對路徑名稱
<img src="data:image/png;base64,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" alt="" />
<img src="data:image/png;base64,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OtgFAQIECBAgQIAAAQIXCghuLgQ0nAABAgQIECBAgACBMQQENze4Dk9Pf1911R8/fpy83tNff+3ix4sAAQIECBAgQIDAVgS+7ff7/fv7++7z8/Ome355efla//X19Stf67OytmddpG9vb7vn5+dadVf5CIo+Pn6ufqYIaj7++effdWp+9YUtQIAAAQIECBAgQOACge8XjF1saAQwNWBpy7VtsUUfeKKpJzm/fv3692lNBjZBFHkBzgO/WRydAAECBAgQILAhgSGCmw15XbTV+nG0+gQm66Ou5nOxrIty5uv47NemNYiJwCVfNZ91p6Yx9xLznLqu/gQIECBAgAABAgSmBIYIbg49makfTTvUd+qgI9RnQJIBSu4pg5qor30yn2ltz7FzaQYfNciZ639KW859yhh9CRAgQIAAAQIECKwpMERwUw/YfiQt2mpA02uv47eczyBm7TNMBTsClrXlzU+AAAECBAgQILCmwFDBTS9wqYHNmhCPNLcg5pGutrMSIECAAAECBB5HYJivgu4FNnEZot7regL5BQK5oi8TSAkpAQIECBAgQIDA6AJDBDdtYHOvAU38zkz+vk2bjzdKbavlfBPFx9bquKyfSuPjZ/kRtJqf6p/1GeDMBTY5b46REiBAgAABAgQIELi1wBB/56YXzNSPo9X2Wt/i3fvfuWnPe8tyBDc+3nbLK2BtAgQIECBAgACBVmCI4Kbd1Lllwc25cqeNE9ic5qU3AQIECBAgQIDAdQSG+FjadY5qlaUEPLFZStI8BAgQIECAAAECSwoIbpbUNBcBAgQIECBAgAABAjcTENzcjN7CBAgQIECAAAECBAgsKSC4WVLTXAQIECBAgAABAgQI3ExAcHMzegsTIECAAAECBAgQILCkgOBmSU1zESBAgAABAgQIECBwMwHBzc3oLUyAAAECBAgQIECAwJICgpslNc1F4EYC8beH2tfT30//VmXatmf5UHv2u0b6aHvJ82Z6DeNHW6P3z8ajGTgvAQIEHklAcPNIV9tZ71Kg90dV42b54+fHLtOpgx9qnxq3Rv2j7SXPm+kapubc7eLvcglwvBMIECDwOALfH+eo45z06env3cfHz3E2dIWd1JuLe/gjoHmePEuWgzLrWtboM9XW6zs3V9u/lvNmOdPadu/5OHO+IrjrvY7p0xu3ZF1em0yPmTvfY8e+h3pz5hzR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0LTlx7tcy554S8FGfjRtWQGzESBAgAABAgQI3JPAMH/npg1sEjkCmvzJOunyAms9xVl+p+fNGL9DM/Waa5sao54AAQIECBAgQGA8gSG+CroNbLKcabK15azP1FdBp8Tu6wsE/lfz+5cGRH0NaKae4mSf2p51de5ePsfU/lHXlntjo64GHfk7MO0v+k/16c059/Qn589x7TpZLyVAgAABAgQIEBhXYJjgpiXqfQQt6uZegps5HW2nCAhuTtHSlwABAgQIECAwhsAQwc1SFIKbpSQfex6BzWNff6cnQIAAAQIEtiswzO/cbJfQzu9NoP2I2r2dz3kIECBAgAABAvcqILi51yvrXAQIECBAgAABAgQeTEBw82AX3HEJECBAgAABAgQI3KuA4OZer6xzESBAgAABAgQIEHgwAcHNg11wxyVAgAABAgQIECBwrwKCm3u9ss5FgAABAgQIECBA4MEEBDcPdsEdlwABAgQIECBAgMC9Cghurnhl4++nxI8XAQIECBAgQIAAAQLLCwhuljednNHfT5mk0UCAAAECBAgQIEDgYgHBzcWEJiBAgAABAgQIECBAYASB7yNsIvbw8vLytZXX19evfG1r63/rpECAAAECBAgQIECAwEMLDBHcRGBTA5danso/9FVzeAIECBAgQIAAAQIE/hAY+mNpNbCJnUcAFHVbfsXv3fhSgS1fQXsnQIAAAQIECBAYVWCIJzf51CYDlyyPinbJviKw8cUClwgaS4AAAQIECBAgQKAvMNSTmwhq7uHpTJ9aLQECBAgQIECAAAECawoMFdyseVBzEyBAgAABAgQIECBw3wJDBDf5cbT7pnY6AgQIECBAgAABAgTWFBgiuJk6YPsRtfYLBqbGqSdAgAABAgQIECBA4PEEvu33+/37+/vu8/PzpqevT2/aLxTItra+3fDb29vu+fm5rR6mnN+S5gsFhrkkNkKAAAECBAgQIHBHAsMEN0uYjh7cLHFGcxAgQIAAAQIECBAg0BcY+mNp/S2rJUCAAAECBAgQIECAwJ8Cgps/TdQQIECAAAECBAgQILBBAcHNBi+aLRMgQIAAAQIECBAg8KeA4OZPEzUECBAgQIAAAQIECGxQQHCzwYtmywQIECBAgAABAgQI/CkguPnTRA0BAgQIECBAgAABAhsUENxs8KKduuW/n55OHfJH/yXm+GPSUjE1/1R9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