linux中的会话可以具有控制终端。
我有兴趣知道的是,当您设置控制终端的前景过程组(使用tcsetpgrp()
)是一个保存前景过程组的过程组ID的变量属于控制终端数据结构,还是属于会话数据结构?
tcsetpgrp()
是通过TTY设备上的IOCTL TIOCSPGRP
实现的。
此IOCTL依次实现在内核函数TIOCSPGRP中,设置了终端的pgrp
的成员CC_4。
简而言之,前景过程组存储在TTY数据结构中。这是有道理的,因为前景过程组的效果是确定当用户按键组合(例如ctrl-c和ctrl-z)时,将从TTY接收哪些过程。