铁雪资源网 Design By www.gsvan.com

先来看一段简单代码:

[cpp] view plaincopy在CODE上查看代码片派生到我的代码片  
#include <stdio.h>  
#include <unistd.h>  
  
int main()  
{  
    printf("%d\n",getpid());  
    while(1);  
} 

运行结果:

CentOS下程序内存空间分配详解

这时另开一个终端,输入cat /proc/10073/maps,出现如下显示:

[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]  

实际上,第一行是代码区所占的内存空间,804800-804900,实际上几乎所有的linux程序代码段都是从804800开始的,第二行是全局栈区所占的内存空间,第三行是堆空间所占的内存空间,最后一行是局部栈所占的内存空间。

同时,我们会发现除了代码段的权限是r-xp(可读-不可写-可执行-私有保护)之外,其他三个都是不可执行的。

标签:
CentOS,程序内存,空间分配

铁雪资源网 Design By www.gsvan.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
铁雪资源网 Design By www.gsvan.com

评论“CentOS下程序内存空间分配详解”

暂无CentOS下程序内存空间分配详解的评论...

稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!

昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。

这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。

而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?