2022年创建新进程:fork函数 .pdf
《2022年创建新进程:fork函数 .pdf》由会员分享,可在线阅读,更多相关《2022年创建新进程:fork函数 .pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、创建新进程: fork 函数1.fork函数干什么?#include #include pid_t fork(void); fork()函数用于从已存在进程中创建一个新进程。新进程称为子进程,而原进程称为父进程。你可以通过检查 fork() 函数的返回值知道哪个是父进程,哪个是子进程。父进程得到的返回值是子进程的进程号,而子进程则返回0。以下这个范例程序说明它的基本功能:pid_t pid; switch (pid = fork() case -1: /* 这里 pid 为-1,fork 函数失败 */ /* 一些可能的原因是 */ /* 进程数或虚拟内存用尽 */ perror(The fo
2、rk failed!); break; case 0: /* pid为 0,子进程 */ /* 这里,我们是孩子,要做什么? */ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - /* . */ /* 但是做完后 , 我们需要做类似下面: */ _exit(0); default: /* pid大于 0,为父进程得到的子进程号 */ printf(Childs pid is %dn,pid); 当然,有人可以用 if() . e
3、lse . 语句取代 switch()语句,但是上面的形式是一个有用的惯用方法。知道子进程自父进程继承什么或未继承什么将有助于我们。下面这个名单会因为不同 Unix 的实现而发生变化, 所以或许准确性有了水份。 请注意子进程得到的是这些东西的 * 拷贝*,不是它们本身。由子进程自父进程继承到:* 进程的资格 (真实(real)/有效(effective)/已保存 (saved) 用户号 (UIDs)和组号 (GIDs) * 环境(environment) * 堆栈* 内存* 打开文件的描述符 ( 注意对应的文件的位置由父子进程共享, 这会引起含糊情况) * 执行时关闭 (close-on-ex
4、ec) 标志 ( 译者注: close-on-exec标志可通过fnctl()对文件描述符设置, POSIX.1 要求所有目录流都必须在exec 函数调用时关闭。更详细说明,参见 W. R. Stevens, 1993, 尤晋元等译(以下简称 ), 3.13节和 8.9 节) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 5 页 - - - - - - - - - * 信号(signal)控制设定* nice值 ( 译者注: nice 值由 nice 函数设定,该值表示
5、进程的优先级,数值越小,优先级越高 ) * 进程调度类别 (scheduler class) ( 译者注:进程调度类别指进程在系统中被调度时所属的类别, 不同类别有不同优先级, 根据进程调度类别和nice 值,进程调度程序可计算出每个进程的全局优先级(Global process prority),优先级高的进程优先执行 ) * 进程组号* 对话期 ID(Session ID) (译者注:译文取自 ,指:进程所属的对话期 (session)ID, 一个对话期包括一个或多个进程组,更详细说明参见 9.5 节) * 当前工作目录* 根目录 ( 译者注:根目录不一定是“/ ” ,它可由 chroot
6、 函数改变 ) * 文件方式创建屏蔽字 (file mode creation mask (umask) (译者注:译文取自,指:创建新文件的缺省屏蔽字) * 资源限制* 控制终端子进程所独有:* 进程号* 不同的父进程号 ( 译者注:即子进程的父进程号与父进程的父进程号不同,父进程号可由 getppid 函数得到 ) * 自己的文件描述符和目录流的拷贝(译者注:目录流由opendir 函数创建,因其为顺序读取,顾称“目录流”) * 子进程不继承父进程的进程,正文(text),数据和其它锁定内存(memory locks) (译者注:锁定内存指被锁定的虚拟内存页,锁定后,不允许内核将其在必要时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年创建新进程:fork函数 2022 创建 进程 fork 函数
限制150内