#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
#include<wait.h>
#include<errno.h>
#include<signal.h>
#include<sys/types.h>
#include<fcntl.h>
#include<sys/stat.h>
int main()
{
int n;
pid_t nPid;
pid_t nGroupPid;
printf("进程ID=%d\n",getpid());//进程ID
printf("进程的父进程ID id=%d\n",getppid());//进程的父进程ID
printf("进程组ID =%d",getpgrp());//进程组ID
printf("进程的用户ID=%d\n",getuid());//进程的用户ID
printf("进程用户组ID=%d\n",getgid());//进程用户组ID
printf("进程的有效用户ID=%d\n",geteuid());//进程的有效组ID
printf("进程的有效组ID=%d\n",getegid());//进程的有效组ID
setpgid(0,0);//设置当前进程为新的进程组的组长
sleep(10);//休眠10s
if(nPid!=0)
{
exit(0);//父进程退出
}
nGroupPid=setsid();//产生新会话,返回新创建进程组的组ID
if(nGroupPid==-1)
{
perror("setsid");
exit(0);//输出错误信息
}
return 0;
}