内存管理、磁盘和文件拾遗
Part1. 内存管理
一个程序的可执行文件在内存中的结果,从大的角度可以分为两个部分:只读部分和可读写部分。只读部分包括程序代码(.text)和程序中的常量(.rodata)。
可读写部分(变量)大致可分为下面几个部分:
.data
:初始化了的全局变量和静态变量.bss
:即Block Started by Symbol
,未初始化的全局变量和静态变量heap
:堆,使用malloc
、realloc
和free
函数控制的变量,堆在所有的线程,共享库,和动态加载的模块中被共享使用。stack
:栈,函数调用时使用栈来保存函数现场,自动变量(即生命周期限制在某个 scope 的变量)也存放在栈中。