全部博文(842)
分类: 系统运维
2012-05-14 15:16:16
我们需要一种方法来告诉内核哪个进程组是前台进程组,以便终端设备驱动知道发送终端输入和终端产生的信号到哪里。
函数tcgetpgrp返回和在filedes上打开的终端相关联的前台进程组的进程组ID。
如果进程有一个控制终端,进程可以调用tcsetpgrp来设置前台进程组ID给pgrpid。pgrpid的值必须是相同会话里的一个进程组的进程组ID,filedes必须引用会话的控制终端。
多数应用程序没有直接调用这两个函数。它们通过用工作控制算过调用。
SUS定义了一个XSI扩展,被称为tcgetsid,来允许一个应用程序来得到会话领导的进程组ID,给定一个控制TTY的文件描述符。
需要管理控制终端的应用程序可以使用tcgetsid来标识控制终端领导的会话ID(,等价于会话领导的进程组ID)。