find堆空间后的逻辑可用

嗨,我是一个新的内存pipe理,我只是想find逻辑来find免费的堆空间。 我觉得通过find“ 程序中断 ”和“ 堆栈指针 ”的区别,我们可以得到它是正确的吗? 如果不是,请说明理由,让我知道正确的逻辑。

在Linux下的内存布局是一个复杂的野兽,我认为你通常不应该关心可用堆:这是虚拟内存的目的之一。 每个进程都看到一个平坦的大内存空间。

关于你提出的解决方案,我不认为这是正确的,因为这里描述: http ://duartes.org/gustavo/blog/post/anatomy-of-a-program-in-memory/ hep成长起点BSS段的结束。

您可以通过以下方式轻松获取某个进程的堆大小(本例中为22088):

 cat /proc/22088/maps | grep heap 7f5082180000-7f5082ac7000 rw-p 00000000 00:00 0 [heap] 

从C用户空间代码中,您可以读取此文件以获取当前进程的堆大小。