【发布时间】:2017-11-24 09:53:17
【问题描述】:
Linux 中的会话可以有一个控制终端。
我有兴趣知道的是,当您设置控制终端的前台进程组(使用tcsetpgrp())时,是保存前台进程组ID的变量进程组属于控制终端数据结构还是属于会话数据结构?
【问题讨论】:
标签: c linux linux-kernel
Linux 中的会话可以有一个控制终端。
我有兴趣知道的是,当您设置控制终端的前台进程组(使用tcsetpgrp())时,是保存前台进程组ID的变量进程组属于控制终端数据结构还是属于会话数据结构?
【问题讨论】:
标签: c linux linux-kernel
tcsetpgrp() 是通过 tty 设备上的 ioctl TIOCSPGRP 实现的。
这个ioctl又在内核函数tiocspgrp中实现,为终端设置struct tty_struct的成员pgrp。
简而言之,前台进程组存储在 tty 数据结构中。这是有道理的,因为前台进程组的作用是识别当用户按下 ctrl-C 和 ctrl-Z 等组合键时哪些进程将从 tty 接收信号。
【讨论】: