- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
创建新进程: fork 函数
1.fork 函数干什么?
#include sys/types.h
#include unistd.h
pid_t fork(void);
‘fork() ’函数用于从已存在进程中创建一个新进程。新进程称为子进程,
而原进程称为父进程。 你可以通过检查 fork() ’函数的返回值知道哪个是父进程,
哪个是子进程。父进程得到的返回值是子进程的进程号,而子进程则返回 0。以
下这个范例程序说明它的基本功能:
pid_t pid;
switch (pid = fork())
{
case -1:
/* 这里 pid 为-1 ,fork 函数失败 */
/* 一些可能的原因是 */
/* 进程数或虚拟内存用尽 */
perror(The fork failed!);
break;
case 0:
/* pid 为 0,子进程 */
/* 这里,我们是孩子,要做什么? */
/* ... */
/* 但是做完后 , 我们需要做类似下面: */
_exit(0);
default:
/* pid 大于 0,为父进程得到的子进程号 */
printf(Childs pid is %d\n,pid);
}
当然,有人可以用‘ if() ... else ... ’语句取代‘ switch() ’语句,但是
上面的形式是一个有用的惯用方法。
知道子进程自父进程继承什么或未继承什么将有助于我们。下面这个名单会
因为不同 Unix 的实现而发生变化, 所以或许准确性有了水份。 请注意子进程得到
的是这些东西的 * 拷贝* ,不是它们本身。
由子进程自父进程继承到:
* 进程的资格 ( 真实 (real)/ 有效 (effective)/ 已保存 (saved) 用户号 (UIDs)
和组号 (GIDs))
* 环境 (environment)
* 堆栈
* 内存
* 打开文件的描述符 ( 注意对应的文件的位置由父子进程共享, 这会引起含糊
情况 )
* 执行时关闭 (close-on-exec) 标志 ( 译者注: close-on-exec 标志可通过
fnctl() 对文件描述符设置, POSIX.1 要求所有目录流都必须在 exec 函数调用时
关闭。更详细说明,参见 UNIX环境高级编程 W. R. Stevens, 1993, 尤晋元
等译 ( 以下简称 高级编程 ), 3.13 节和 8.9 节)
* 信号 (signal) 控制设定
* nice 值 ( 译者注: nice 值由 nice 函数设定,该值表示进程的优先级,数
值越小,优先级越高 )
* 进程调度类别 (scheduler class) ( 译者注:进程调度类别指进程在系统中
被调度时所属的类别, 不同类别有不同优先级, 根据进程调度类别和 nice 值,进
程调度程序可计算出每个进程的全局优先级 (Global process prority) ,优先级
高的进程优先执行 )
* 进程组号
* 对话期 ID(Session ID) ( 译者注:译文取自 高级编程 ,指:进程所属
的对话期 (session)ID , 一个对话期包括一个或多个进程组,
您可能关注的文档
最近下载
- 青志愿者协会组织机构图.docx VIP
- 专题18:诗词三首(行路难、酬乐天扬州初逢席上见赠、水调歌头明月几时有)(含答案析)-中考语文基础·练习·突破课内诗歌高效复习ABC.docx VIP
- 浙教版劳动一年级上册3-2 餐具我来摆 教案(表格式).pdf VIP
- 南京大学2020-2021学年第1学期《生物化学》期末考试试卷(B卷)及标准答案.docx
- 八年级生物上册复习ppt课件(新版)新人教版.pptx VIP
- 市政管道接驳专项施工方案.docx VIP
- 家庭教育促进法-完整版ppt课件.pptx
- 045111学科教学 - 重庆师范大学研究生院 .pdf VIP
- 17J925-1 压型金属板建筑构造图集.pdf VIP
- 南京大学2020-2021学年第1学期《生物化学》期末考试试卷(A卷)及标准答案.docx
原创力文档


文档评论(0)