《UNIX环境高级编程》笔记38--控制终端
会话和进程组有一些其他特性:
1.一个会话可以有一个控制终端(controlling terminal),通常会话的第一个进程打开一个终端(终端设备或伪终端设备)
后,该终端就成为该会话的控制终端。
2.建立与控制终端连接的会话首进程被称为控制进程。(controlling process)
3.一个会话中的几个进程组可被分成一个前台进程组以及一个或者多个后台进程组。
4.如果一个会话有一个控制终端,则它有一个前台进程组,会话中的其他进程组则为后台进程组。
5.无论何时进入终端的中断键(ctrl+c)或推出键(ctrl+\),就会将中断信号发送给前台进程组的所有进程。
6.如果终端接口检测到调制解调器(或网络)已经断开,则将挂断信号发送给控制进程。
通常,我们不必关心控制终端,登录时,将自动建立控制终端。
保证程序能读写控制终端的方法是打开/dev/tty,在内核中,此特殊文件是控制终端的同义词。自然,如果程序没有控制终端,则打开
此设备将失败。/dev/tty文件的存在,有一个特殊的用法:
当标准输入stdin和标准输出stdout被重定向时,我们仍然可以通过/dev/tty文件而实现对键盘的读取和对显示器的输出!