tty 特殊文件

用途

支持控制终端接口。

描述

对于每个进程, /dev/tty 特殊文件是与该进程关联的控制终端的同义词。 通过将消息定向到 文件,应用程序和 shell 序列可以确保将消息写入到终端,即使输出被重定向也是如此。 程序也可以将它们的显示输出定向到此文件中,这样就不需要识别活动终端。

一个终端可以作为其控制终端属于一个进程。 具有控制终端的会话中的每个进程都具有相同的控制终端。 一个终端最多只能是一个会话的控制终端。 如果会话引导程序没有控制终端,并且打开尚未与会话相关联的终端设备文件 (不使用 子例程的 0-无 选项) ,那么该终端将成为会话引导程序的控制终端。 如果不是会话引导程序的进程打开终端文件,或者如果使用了 0-无 选项,那么该终端将不会成为呼叫进程的控制终端。 当控制终端与会话相关联时,其前台进程组被设置为会话引导程序的进程组。

子例程期间,控制终端由子进程继承。 如果其他进程继续打开终端文件,那么进程不能通过关闭其与控制终端相关联的所有文件描述符来结束与其控制终端的关联。 不是会话引导程序或组引导程序的进程可以通过使用 设置标识 子例程来中断其与其控制终端的关联。 保留在旧会话中的其他进程将保留其与控制终端的关联。

当与控制终端相关联的最后一个文件描述符被关闭 (包括由不在控制终端的会话中的进程所保持的文件描述符) 时,控制终端与其当前会话解除关联。 然后,新的会话引导符可以获取解除关联的控制终端。

通过打开 文件并发出以下 ioctl 命令,进程还可以除去它与它的控制终端的关联:

ioctl (FileDescriptor, TIOCNOTTY, 0):

通常,将服务器进程与其控制终端解除关联非常有用,因此它们无法从终端接收输入或被终端停止。

此设备驱动程序还支持 POSIX 和 Berkeley 线路规程。