.SSH:UNIX-UNIX环境高级编程8.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
下载 第8章 进 程 控 制 8.1 引言 本章介绍U N I X 的进程控制,包括创建新进程、执行程序和进程终止。还将说明进程的各 种I D—实际、有效和保存的用户和组I D ,以及它们如何受到进程控制原语的影响。本章也包 括了解释器文件和 s y s t e m函数。本章以大多数U N I X 系统所提供的进程会计机制结束。这使我 们从一个不同角度了解进程控制功能。 8.2 进程标识 每个进程都有一个非负整型的唯一进程 I D 。因为进程I D标识符总是唯一的,常将其用做其 他标识符的一部分以保证其唯一性。 5 . 1 3节中的t m p n a m 函数将进程I D作为名字的一部分创建 一个唯一的路径名。 有某些专用的进程:进程ID 0 是调度进程,常常被称为交换进程 ( s w a p p e r ) 。该进程并不执 行任何磁盘上的程序—它是内核的一部分,因此也被称为系统进程。进程 ID 1 通常是i n i t进 程,在自举过程结束时由内核调用。该进程的程序文件在 U N I X 的早期版本中是/ e t c / i n i t ,在较 新版本中是/ s b i n / i n i t 。此进程负责在内核自举后起动一个U N I X 系统。i n i t通常读与系统有关的 初始化文件( / e t c / r c *文件) ,并将系统引导到一个状态(例如多用户) 。i n i t进程决不会终止。它是 一个普通的用户进程 (与交换进程不同,它不是内核中的系统进程 ) ,但是它以超级用户特权运 行。本章稍后部分会说明i n i t如何成为所有孤儿进程的父进程。 在某些U N I X 的虚存实现中,进程ID 2 是页精灵进程( p a g e d a e m o n ) 。此进程负责支持虚存系 统的请页操作。与交换进程一样,页精灵进程也是内核进程。 除了进程I D ,每个进程还有一些其他标识符。下列函数返回这些标识符。 #include sys/types.h #include unistd.h pid_t getpid(void); 返回:调用进程的进程 I D pid_t getppid(void); 返回:调用进程的父进程 I D uid_t getuid(void); 返回:调用进程的实际用户 I D uid_t geteuid(void); 返回:调用进程的有效用户 I D gid_t getgid(void); 返回:调用进程的实际组 I D gid_t getegid(void); 返回:调用进程的有效组 I D 注意,这些函数都没有出错返回,在下一节中讨论 f o r k函数时,将进一步讨论父进程I D 。4 . 4节 中已讨论了实际和有效用户及组I D 。 1 4 2 U N I X环境高级编程 下载 8.3 fork 函数 一个现存进程调用f o r k 函数是U N I X 内核创建一个新进程的唯一方法(这并不适用于前节提 及的交换进程、 i n i t进程和页精灵进程。这些进程是由内核作为自举过程的一部分以特殊方式 创建的) 。 #include sys/types.h #include unistd.h pid_t fork(void); 返回:子进程中为0 ,父进程中为子进程 I D,出错为-1 由f o r k创建的新进程被称为子进程( child process )。该函数被调用一次,但返回两次。两次返 回的区别是子进程的返回值是0 ,而父进程的返回值则是新子进程的进程 I D 。将子进程I D返回 给父进程的理由是:因为一个进程的子进程可以多于一个,所以没有一个函数使一个进程可以 获得其所有子进程的进程 I D 。f o r k

文档评论(0)

zhuanqmf01 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档