- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
UNIX环境高级编程07
下载
下载
第7章 U N I X进程的环境
7.1 引言
下一章将介绍进程控制原语,在此之前需先了解进程的环境。本章中将学习:当执行程序
时,其m a i n 函数是如何被调用的,命令行参数是如何传送给执行程序的;典型的存储器布局是
什么样式;如何分配另外的存储空间;进程如何使用环境变量;进程终止的不同方式等。另外,
还将说明l o n g j m p和s e t j m p函数以及它们与栈的交互作用。本章结束之前,还将查看进程的资源
限制。
7.2 main 函数
C程序总是从m a i n 函数开始执行。m a i n 函数的原型是:
int main(inta 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流等) ,然后进入内核。
第 7章 U N I X进程的环境 1 2 3
下载
#include stdlib.h
void exit(ints t a t u s ) ;
#include unistd.h
void _exit (ints t a t u s ) ;
我们将在8 . 5节中讨论这两个函数对其他进程,例如终止进程的父、子进程的影响。
使用不同头文件的原因是:e x i t是由ANSI C 说明的,而_ e x i t则是由P O S I X . 1说
明的。
由于历史原因,e x i t 函数总是执行一个标准 I / O库的清除关闭操作:对于所有打开流调用
f c l o s e 函数。回忆5 . 5节,这造成缓存中的所有数据都被刷新 (写到文件上) 。
e x i t和_ e x i t 都带一个整型参数,称之为终止状态(exit status )。大多数UNIX shell 都提供检
查一个进程终止状态的方法。如果 ( a )若调用这些函数时不带终止状态,或 ( b ) m a i n执行了一个
无返回值的r e t u r n语句,或( c ) m a i n执行隐式返回,则该进程的终止状态是末定义的。这就意味
着,下列经典性的C语言程序:
#include stdio.h
main ()
{
printf (hello, world \n);
}
是不完整的,因为m a i n 函数没有使用r e t u r n语句返回( 隐式返回) ,它在返回到C 的起动例程时并
没有返回一个值(终止状态) 。另外,若使用:
r e t u r n ( 0 ) ;
或者
您可能关注的文档
最近下载
- 心理健康教育对青少年学习动力的影响.pptx VIP
- 基于财务共享模式下的财务风险管理—以海尔集团为例.doc VIP
- 初一学生期中家长会优质课件.ppt
- 中国华电集团发电运营有限公司招聘笔试题库2024.pdf
- 物流服务师(高级工)职业技能鉴定考试及答案.doc VIP
- 2024年浙江省中考数学试卷(附答案).pdf
- 人教版九年级全册英语Unit 14大单元整体教学设计.docx
- 4.11.1《探问人生目标》课件人教统编版道德与法治七年级上册2024新教材.pptx
- JB∕T 10923-2020 电能表用磁保持继电器.pdf
- 2018年版《广东省安装工程定额说明及计算规则》C.5 建筑智能化工程.pdf
文档评论(0)