文件名称:进程终止-中国电信智慧城市白皮书
文件大小:18.36MB
文件格式:PDF
更新时间:2024-07-29 20:46:33
Unix 环境高级编程
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流等),然后进入内核。