[UNIX环境高级编程第二版]读书笔记8章[TBD]

8.1  null
8.2  进程标识符
     0,调度进程,交换进程。1是init进程。
     getpid(进程ID), getppid(父进程ID), getuid(实际用户ID), geteuid(有效用户ID), getgid(实际组ID), getegid(有效组ID).
8.3  pid_t fork(void);创建子进程。调用一次,返回2次。父进程返回值是子进程ID。子进程返回值是0。
     写时复制(Copy-On-Write)。fork之后父进程还是子进程先执行不确定,取决于内核的调度算法。
     两种用法1)父进程希望复制自己,但两者执行不同代码段。2)一个进程要执行不同的程序。子进程从fork返回后立即调用exec。
8.4  vfork,和fork相同,但是不完全复制父进程的地址空间。vfork保证子进程先运行,在它调用exec或exit之后才父进程才可能被调度运行。
8.5  exit。父进程先于子进程结束的。被init(ID为1)进程领养。子进程结束,父进程可以调用wait或waitpid获取相关信息。
     子进程已死,父进程没对其善后处理的,该子进程称为僵尸进程。ps命令显示为Z。
8.6  调用wait或waitpid:1)子进程运行,则block。2)子进程挂了,立即返回。3)无子进程,返回错误。waitpid有选项参数,可以控制。
     等待指定子进程pid结束,使用waitpid。wait函数的非阻塞版waitpid。
     进程fork两次,将第一个子进程退出,则第二个子进程的父进程相对于死亡,则有init进程(ID是1)接管,变成自由的进程。
8.7  waitid获取进程终止状态,和wait类似,但提供更多的灵活性。
8.8  wait3和wait4。查看手册看是否支持,然后再使用。
8.9  
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值