> 文章列表 > 函数 tcgetpgrp tcsetpgrp 和 tcgetsid

函数 tcgetpgrp tcsetpgrp 和 tcgetsid

函数 tcgetpgrp  tcsetpgrp 和 tcgetsid

① tcgetpgrp & tcsetpgrp 函数


函数 tcgetpgrp  tcsetpgrp 和 tcgetsid

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;
}

运行结果:
函数 tcgetpgrp  tcsetpgrp 和 tcgetsid

这里是打开tty设备之后才有了控制终端的fd,一般情况下应用程序是不调用这两个接口的,
一般都是作业控制shell调用。

② tcgetsid 函数

函数 tcgetpgrp  tcsetpgrp 和 tcgetsid

该函数是获取会话首进程的进程组ID,当然,需要具有控制终端的程序才能调用。