setpgid将参数pid指定进程所属的组识别码设为参数pgid指定的组识别码。如果参数pid 为0,则会用来设置目前进程的组识别码,如果参数pgid为0,则由pid指定的进程ID将用作进程组ID。一个进程只能为它自己或它的子进程设置进程组ID
#include<unistd.h>
int setpgid(pid_t pid,pid_t pgid);
函数作用:将pid进程的进程组ID设置成pgid,创建一个新进程组或加入一个已存在的进程组
函数性质:
性质1:一个进程只能为自己或子进程设置进程组ID,不能设置其父进程的进程组ID。
性质2:if(pid == pgid), 由pid指定的进程变成进程组长;即进程pid的进程组ID pgid=pid.
性质3:if(pid==0),将当前进程的pid作为进程组ID.
性质4:if(pgid==0),将pid作为进程组ID.
函数使用说明:一般自己调用该函数时,最好是明确指定pid和pgid,方便阅读代码流程;若想特意为之,就要会用性质
原文:https://www.cnblogs.com/hshy/p/11848230.html