进程间关系

本文介绍了Linux系统中进程间的关系,包括进程组的概念,如何获取和设置进程的进程组ID(PGID),以及会话的创建和其对进程的影响。强调了进程组首领的角色,以及非首领进程调用创建会话函数时的特殊效果。
摘要由CSDN通过智能技术生成

一、进程间关系

1、进程组

Linux下每个进程都隶属于一个进程组,因此它们除了PID信息外,还有进程组ID(PGID)。用下面这个函数来获取指定进程PGID

#include<unistd.h>
pid_t getpgid(pid_t pid);

该函数成功时返回进程pid所属进程组的PGID,失败则返回-1,并设置errno。

每个进程都有一个首领进程,其PGID和PID相同,进程组将一直存在,直到其中所有进程都退出,或者加入到其他进程组。

设置PGID的函数

#include<unistd.h>
int setpgid(pid_t pid, pid_t pgid);

该函数将PID为pid的进程的组ID设置为pgid。如果pid和pgid相同,则由pid指定的进程将被设置为进程组首领;如果pid为0,则表示当前进程的PGID为pgid;如果pgid为0,则使用pid作为目标PGID. setpgid函数成功时返回0,失败时返回-1,并设置errno

一个进程只能设置自己或者其子进程的PGID。并且,当子进程调用exec系列函数后,我们也不能再在父进程中对它设置PG

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值