Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5512194
  • 博文数量: 922
  • 博客积分: 19333
  • 博客等级: 上将
  • 技术积分: 11226
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-27 14:33
文章分类

全部博文(922)

文章存档

2023年(1)

2020年(2)

2019年(1)

2017年(1)

2016年(3)

2015年(10)

2014年(17)

2013年(49)

2012年(291)

2011年(266)

2010年(95)

2009年(54)

2008年(132)

分类: LINUX

2012-01-13 22:05:49

++++++APUE读书笔记-08进程控制(01)++++++
 
1、简介
================================================
 本章我们将讲述UNIX系统提供的进程控制相关的内容。包括新进程的创建,程序的执行,以及进程的终止。我们也会看到进程属性相关的各种ID:真实(real user)用户/组ID,有效(effective user)用户/组ID,保存(saved)用户/组ID,以及进程的基本控制(控制原语)如何影响它们。本章也谈到了解释器文件以及system函数。最后我们通过讲述大多UNIX系统提供的进程记账机制结束本章,这也使得我们从一个不同的角度来看待进程控制函数。
参考:

2、进程标识
================================================
 每一个进程用非负数字来唯一标识(即pid),由于进程pid具有唯一性,所以也常用做其他需要确保唯一性的标识的一部分。例如一些特殊的文件名称中就含有进程pid。
 尽管进程pid是唯一的,但是它可以在进程结束之后再度被重新利用。大多数系统会在进程结束之后延迟其pid的重复利用,防止随后的进程很快采用先前结束进程的pid,导致一些错误。
 另外有一些特殊的进程:pid为0的进程是调度进程(swapper),磁盘中没有这个进程对应的可执行文件,因为它是内核的一部分,作为系统进程;pid为1的进程一般就是init程序,它在内核加载的最后阶段被调用,其对应的可执行文件在早期的版本中是/etc/init,后来的版本中是/sbin/init,这个进程用来在系统内核启动之后运行一些操作系统必须的脚本,它会读取一些例如/etc/rc*或者/etc/inittab,/etc/init.d/*系统无关的脚本,然后系统将进入特定状态,例如多用户状态等。init进程不会死掉,它是一个一般用户进程,不像swapper那样是内核里面的系统进程,init用supersuser的权限运行,后面会提到init也是所有孤儿进程的父亲进程。
 每个系统的实现也有一些自己的核心进程集合,用来提供一些服务。例如在一些unix系统中pid为2的进程是 pagedaemon,支持虚拟内存系统的页机制。
 除了PID,还有进程还有其他的标识属性,如下是获取这些属性的相关函数:
 #include
 pid_t getpid(void);
 返回:调用进程的PID.
 pid_t getppid(void);
 返回:调用进程的父进程PID.
 uid_t getuid(void);
 返回:调用进程的真实用户ID。
 uid_t geteuid(void);
 返回:调用进程的有效用户ID.
 gid_t getgid(void);
 返回:调用进程的真实ID组。
 gid_t getegid(void);
 返回:调用进程的有效ID组。
 注意:这些函数都不会返回错误。
参考:
 
 
阅读(438) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~