服务器之家:专注于服务器技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|

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

2019-06-17 11:04CentOS之家 Centos

今天小编为大家带来的是CentOS下程序内存空间分配详解;希望对大家会有帮助,有需要的朋友一起去看看吧

先来看一段简单代码:

[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(可读-不可写-可执行-私有保护)之外,其他三个都是不可执行的。

延伸 · 阅读

精彩推荐
  • CentosCentOS下VIM实用基本操作技巧详解

    CentOS下VIM实用基本操作技巧详解

    vim是Vi IMproved,是编辑器Vi的一个加强版,一个极其强大并符合IT工程师(程序员、运维)习惯的编辑器。今天小编为大家带来的是CentOS下VIM实用基本操作技巧详解;有需要的朋友一起去看看吧...

    CentOS之家 470 2019-06-14
  • CentosCentOS如何添加用户到sudoers?

    CentOS如何添加用户到sudoers?

    很多朋友说不知道CentOS如何添加用户到sudoers?今天小编就为大家带来CentOS 添加用户到sudoers的方法,希望对大家会有帮助,有需要的朋友一起去看看吧...

    CentOS之家 213 2019-06-14
  • CentosCentOS上如何安装配置GitLab?

    CentOS上如何安装配置GitLab?

    最近一些朋友问小编CentOS上如何安装配置GitLab?今天小编为大家带来的是CentOS上安装配置GitLab的方法,希望对大家会有帮助,有需要的朋友一起去看看吧...

    佚名 64 2019-05-18
  • CentosCentos yum源更换为国内的阿里云镜像源的方法

    Centos yum源更换为国内的阿里云镜像源的方法

    阿里云 是最近新出的一个镜像源。得益于阿里云的高速发展,这么大的需求,肯定会推出自己的镜像源。 阿里云Linux安装镜像源地址: http://mirrors.aliyun.com/ CentOS系统更换软件安装源 第一步:备份你的原镜像文件,以免出错后可以...

    未知 100 2019-05-20
  • Centos在CentOS上如何安装Nux Dextop仓库?

    在CentOS上如何安装Nux Dextop仓库?

    一些朋友问小编在CentOS上如何安装Nux Dextop仓库?今天小编将为大家带来的是在CentOS上安装Nux Dextop仓库的方法,有需要的朋友一起去看看吧...

    服务器之家 132 2019-05-23
  • Centosyum只下载软件不安装的两种方法

    yum只下载软件不安装的两种方法

    这篇文章主要介绍了yum只下载软件不安装的两种方法,需要的朋友可以参考下...

    脚本之家 313 2019-05-31
  • CentosCentOS7下Xfs文件系统的相关操作详解

    CentOS7下Xfs文件系统的相关操作详解

    Xfs是CentOS7.0的默认文件系统类型,而不同文件系统类型对应的创建、检查、调整命令不同,要注意区分。今天小编为大家带来的是CenOS7下Xfs文件系统的相关操作详解;有需要的朋友一起去看看吧...

    CentOS之家 285 2019-06-03
  • CentosCentOS文件查看及编辑介绍详解

    CentOS文件查看及编辑介绍详解

    今天小编将为大家带来CentOS文件查看及编辑介绍详解;希望对大家会有帮助,有需要的朋友一起去看看吧...

    132 2019-06-15