linux系统编程 进程组

父进程创建子进程的时候,默认子进程与父进程属于同一进程组,进程组ID==第一个进程ID(组长进程)。所以,组长进程标识:其进程组ID==其进程ID

组长进程可以创建一个进程组,创建该进程组中的i进程,然后终止,只要进程组中有一个进程存在,进程就存在,与组长进程是否终止无关。

进程组生存期:进程组创建的最后一个进程离开(终止或转移到另一个进程组)。

一个进程可以为自己或子进程设置进程组ID

进程组操作函数

头文件:#include<unistd.h>

getpgrp函数:获得当前进程的进程组ID。原型:pid_t getpgrp(void);

getpgid函数:获得指定进程的进程组ID。原型:pid_t getpgid(pid_t pid);。成功返回0;失败返回-1,设置errno。(假如传入pid=0,则作用与getpgrp一样)

setpgid函数:改变进程默认所属的进程组。通常可用于加入一个现有的进程组或创建一个新进程组。原型:int setpgid(pid_t pid,pid_t pgid);。成功返回0;失败返回-1,设置errno。

pid:进程ID。pgid:进程组ID。

注意:1.改变子进程为新的组,应fork后,exec前。2.非root进程只能改变自己创建的子进程,或有权限操作的进程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值