小編給大家分享一下CentOS下程序內(nèi)存空間分配的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
先來看一段簡單代碼:
[cpp] view plaincopy在CODE上查看代碼片派生到我的代碼片 #include <stdio.h> #include <unistd.h> int main() { printf("%d\n",getpid()); while(1); }
運行結果:
這時另開一個終端,輸入cat /proc/10073/maps,出現(xiàn)如下顯示:
[cpp] view plaincopy在CODE上查看代碼片派生到我的代碼片 08048000-08049000 r-xp 00000000 fd:01 14844 /home/Alex/DaNei/Interview/a.out 08049000-0804a000 r--p 00000000 fd:01 14844 /home/Alex/DaNei/Interview/a.out 0804a000-0804b000 rw-p 00001000 fd:01 14844 /home/Alex/DaNei/Interview/a.out 4427b000-4429a000 r-xp 00000000 fd:01 393917 /usr/lib/ld-2.17.so 4429a000-4429b000 r--p 0001e000 fd:01 393917 /usr/lib/ld-2.17.so 4429b000-4429c000 rw-p 0001f000 fd:01 393917 /usr/lib/ld-2.17.so 442a3000-4445b000 r-xp 00000000 fd:01 393918 /usr/lib/libc-2.17.so 4445b000-4445c000 ---p 001b8000 fd:01 393918 /usr/lib/libc-2.17.so 4445c000-4445e000 r--p 001b8000 fd:01 393918 /usr/lib/libc-2.17.so 4445e000-4445f000 rw-p 001ba000 fd:01 393918 /usr/lib/libc-2.17.so 4445f000-44462000 rw-p 00000000 00:00 0 b7752000-b7753000 rw-p 00000000 00:00 0 b7769000-b776b000 rw-p 00000000 00:00 0 b776b000-b776c000 r-xp 00000000 00:00 0 [vdso] bfe13000-bfe34000 rw-p 00000000 00:00 0 [stack]
實際上,第一行是代碼區(qū)所占的內(nèi)存空間,804800-804900,實際上幾乎所有的linux程序代碼段都是從804800開始的,第二行是全局棧區(qū)所占的內(nèi)存空間,第三行是堆空間所占的內(nèi)存空間,最后一行是局部棧所占的內(nèi)存空間。
同時,我們會發(fā)現(xiàn)除了代碼段的權限是r-xp(可讀-不可寫-可執(zhí)行-私有保護)之外,其他三個都是不可執(zhí)行的。
以上是“CentOS下程序內(nèi)存空間分配的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
當前標題:CentOS下程序內(nèi)存空間分配的示例分析-創(chuàng)新互聯(lián)
本文網(wǎng)址:http://chinadenli.net/article4/dghoie.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設計、移動網(wǎng)站建設、關鍵詞優(yōu)化、手機網(wǎng)站建設、外貿(mào)網(wǎng)站建設、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)