每一个进程都有自己的一个进程堆栈空间。在Linux界面执行一个执行码时,Shell进程会fork一个子进程,再调用exec系统调用在子进程中执行该执行码。
exec系统调用执行新程序时会把命令行参数和环境变量表传递给main函数,它们在整个进程堆栈空间中的位置如下图12-7所示。

图
每个进程都拥有独立的堆栈空间。当在Linux环境下执行程序时,Shell通过fork创建子进程并用exec加载执行码。进程堆栈中包含了命令行参数、环境变量以及代码段、数据段、bss段、栈和堆。代码段存储只读的执行码,数据段和bss段分别存储初始化和未初始化的变量,栈用于存放局部变量和函数调用信息,而堆则用于动态内存分配。
每一个进程都有自己的一个进程堆栈空间。在Linux界面执行一个执行码时,Shell进程会fork一个子进程,再调用exec系统调用在子进程中执行该执行码。
exec系统调用执行新程序时会把命令行参数和环境变量表传递给main函数,它们在整个进程堆栈空间中的位置如下图12-7所示。

图
222

被折叠的 条评论
为什么被折叠?