Linux中的一个设备文件可以指向多个文件吗?

Ste*_*eve 2 terminal devices files

Linux 中的 shell(例如bash:)的stdinandstdoutstderr文件描述符都指向同一个设备文件,例如,以下是 的stdinandstdoutstderr文件描述符bash

在此处输入图片说明

现在/dev/tty1不是一个可以读写的“真实”文件,它是一个设备文件,它指向一个文件或内存中的缓冲区或其他东西。

现在我的问题是,是/dev/tty1只指向一个文件,还是指向两个文件?

我的意思是,当bash/dev/tty1( stdin)读取时,当bash写入/dev/tty1(stdoutstderr) 时,是读取和写入同一个文件,还是/dev/tty1指向两个文件,一个在读取时使用,另一个在读取/dev/tty1时使用写信给/dev/tty1

Ste*_*itt 7

设备节点指向单个设备,在 Linux 中由内核处理。当bash从 读取时/dev/tty1,它从管理第一个终端的设备驱动程序中读取;当它写入时,它写入相同的设备驱动程序。

  • @Steve 是的,如果您仔细查看 [termios](https://linux.die.net/man/3/termios) 接口,您会发现每个 tty 都有一个输入和一个输出缓冲区。 (2认同)