函数 tcgetpgrp tcsetpgrp 和 tcgetsid
① tcgetpgrp & tcsetpgrp 函数
tcgetpgrp函数是用来获取前台进程组的ID
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h>
int main()
{printf("我的ID:%d---我是进程组ID:%d\\n",getpid(),getpgrp());//输出当前进程ID//获取控制终端int tty_fd = open("/dev/tty",O_RDWR);if(tty_fd == -1){perror("open tty ... ");return -1;} //获取前台运行的进程组组IDprintf("前台进程组组ID:%d\\n",tcgetpgrp(tty_fd));if(close(tty_fd) == -1){perror("close tty ... ");return -1;}return 0;
}
运行结果:
这里是打开tty设备之后才有了控制终端的fd,一般情况下应用程序是不调用这两个接口的,
一般都是作业控制shell调用。
② tcgetsid 函数
该函数是获取会话首进程的进程组ID,当然,需要具有控制终端的程序才能调用。