文章目录
一、sbrk 内存分配系统调用代码示例
二、在 /proc/pid/maps 中查看进程堆内存详情
本篇博客调用 sbrk 系统调用函数 , 申请并修改 堆内存 , 并在 /proc/pid/...maps 中查看该进程的 堆内存 ;
一、sbrk 内存分配系统调用代码示例
----
sbrk 系统调用函数 , 作用是 修改程序 BSS 段大小 ;
函数原型如下 :
#include 系统调用申请 堆内存
int *p = sbrk(0);
// 记录该堆内存地址
int *p_old = p;
// 继续为 申请的堆内存, 申请 1024 字节内存..., 在第二次申请内存时 , 指针始终没有改变 , 一直都是 0x203e000 地址 ;
如果使用新的指针 p_new 接收 sbrk 系统调用返回的堆内存指针 , 则分配的是新的地址 ;
二、在 /...申请的内存地址是 0x203e000 ,
第二次还是为 p 指针申请内存 , 实际上是修改 " 堆内存 " 大小 , 其指针的首地址不变 , 是 0x203e000 ;
第三次调用 sbrk 申请的是新的内存