-
鸿鹄论坛上的华为认证h35-211-hcnp-access network题库中涉及了进程终止的相关内容
资源介绍
7.2 main函数
C程序总是从m a i n函数开始执行。m a i n函数的原型是:
int main(int a rg c, char *a rg v[ ] ) ;
其中,a rg c是命令行参数的数目,a rg v是指向参数的各个指针所构成的数组。 7 . 4节将对命令行
参数进行说明。
当内核起动C程序时 (使用一个e x e c函数,8 . 9节将说明e x e c函数),在调用m a i n前先调用一
个特殊的起动例程。可执行程序文件将此起动例程指定为程序的起始地址——这是由连接编辑
程序设置的,而连接编辑程序则由 C编译程序 (通常是c c )调用。起动例程从内核取得命令行参
数和环境变量值,然后为调用m a i n函数作好安排。
7.3 进程终止
有五种方式使进程终止:
(1) 正常终止:
(a) 从m a i n返回。
(b) 调用e x i t。
(c) 调用_ e x i t。
(2) 异常终止:
(a) 调用a b o r t (见第1 0章)。
(b) 由一个信号终止 (见第1 0章)。
上节提及的起动例程是这样编写的,使得从 m a i n返回后立即调用e x i t函数。如果将起动例
程以C代码形式表示(实际上该例程常常用汇编语言编写 ),则它调用m a i n函数的形式可能是:
exit( main(argc, argv) );
7.3.1 exit和_ e x i t函数
e x i t和_ e x i t函数用于正常终止一个程序: _ e x i t立即进入内核, e x i t则先执行一些清除处理
(包括调用执行各终止处理程序,关闭所有标准 I / O流等),然后进入内核。