分类: LINUX
2011-04-07 15:35:45
007_UNIX进程的环境
1)五种进程终止的方式
正常终止:
从main函数返回
调用exit
调用_exit
异常终止:
调用abort
由一个信号终止
2)exit()和_exit()
两个都用于正常终止一个程序或者一个进程。
区别是_exit立即进入内核,exit则先执行以下诶清除处理,包括调用执行各终止处理程序,关闭所有标准IO流等,然后进入内核。可以说exit是_exit的封装形式。
exit()包含在stdlib.h中,符合ANSI C;
_exit()包含在unistd.h中,符合POSIX。
3)C语言的存储空间布局
a) 正文段
由CPU执行的机器指令部分,通常是可共享的。
b)初始化数据段
通常称为数据段,包含了程序中需赋初值的变量。
Example: int num = 66;
c)非初始化数据段
通常称为BSS段,block started by symbol。在程序开始执行之前,内核将此段初始化为0.
Example: int a[6];
d) 栈
自动变量、局部变量以及每次函数调用时所需要保持的信息都存放在此段中。
e) 堆
通常在堆中进行动态存储分配。
水平有限,如果有错误的地方,请指正,thanks
cjok.liao@gmail.com