首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Unix环境高级编程学习札记(四) 进程环境

2012-09-05 
Unix环境高级编程学习笔记(四) 进程环境C程序的内存布局首先看下面这个图,有个大致的概念:每一个C程序都有

Unix环境高级编程学习笔记(四) 进程环境
C程序的内存布局首先看下面这个图,有个大致的概念:Unix环境高级编程学习札记(四) 进程环境
每一个C程序都有自己独立的地址空间,它们包含五个部分:1. 代码段(Text segment)存放程序的执行代码,即使在多进程的环境下,它也只有一份。2. 初始化数据段(Initialized data segment)例如初始化的全局变量

我们通常会有一个全局指针指向该表的首地址,它的声明如下:
int atexit(void (*func)(void));

每个进程可以利用这个函数注册至少32个函数(根据实现不同而不同),这些被注册的函数将被exit函数自动调用。

exit 函数会首先调用这些注册了的函数,然后关闭所有打开了的流,最后才返回kernel。

如果我们调用了exec系列的函数,那么,任何注册了的结束处理函数都将被清除。

热点排行