多个进程间的关系
linux系统支持多进程同时运行,多个进程分配到多个处理上运行,快速方便。但多个进程在一个系统中协调运行,并不容易。
进程组
一个或多个进程的集合。作为一个进程组,里面的每一个进程都有统一的进程标志。
可以通过getpgrp()函数获取进程组ID。
#include<sys/types.h>
#include<unistd.h>
pid_t getpgrp(void);
在进程组中有一个特色的进程的ID与进程组ID相同。
使用setpgid()函数创建一个新的进程组或者将一个进程加入到一个进程组中。
#include<sys/types.h>
#include<unistd.h>
int setpgid(pid_t pid,pid_t pgid);
setpgid()函数调用成功,返回值为0,失败返回值为-1.
例:
#include<sys/types.h>
#include<unistd.h>
#include<stdio.h>
int main(void)
{
int a;
pid_t pgid,pid;
pid=(long)getpid();
pgid=(long)getpgrp();
a=setpgid(pid,pgid);
printf("a=%d,pid=%ld,pgid=%ld\n",a,pid,pgid);
return 0;
}
setpgid()函数中,如果参数pid和参数pgid相同,