gpt4 book ai didi

tty - 函数 ttyn(3) 返回什么?

转载 作者:太空狗 更新时间:2023-10-29 16:01:30 25 4
gpt4 key购买 nike

手册页在这里:http://man.cat-v.org/unix-6th/3/ttyn

这个例子:

if (ttyn(0) = 'x'){
...
}

手册页说“如果指示的文件不对应于 打字机。

指示的文件将是参数 0,所以是标准输入,对吗?

什么是打字机?我的键盘?

你用这条线检查什么?

if (ttyn(0) = 'x')

最佳答案

当时,打字机(或电传打字机或 tty)是通过串行端口连接到计算机的 RS-232 终端。 /dev中对应这些端口的设备条目分别命名为/dev/tty0/dev/tty1/dev/ttya 等。这些文件中的每一个都是字符特殊文件,而不是普通文件。

当系统检测到终端时,通常是通过打开或通过调制解调器连接,init 进程在新进程中的文件描述符 0、1 和 2 上打开设备,并且这些文件描述符在登录过程、用户的 shell 以及从 shell 派生的任何进程中持续存在。

正如您在问题中所说,文件描述符 0 也称为标准输入

ttyn 函数在其参数上调用 fstat,它返回有关文件的一些信息,例如其 inode 号、权限等。ttyn 然后读取 /dev,查看每个以 "tty" 开头的文件,看看哪个文件的 inode 号与 ttyn 相同的说法。当它找到匹配项时,它返回文件名的第 4 个字符,即 '0''1''a'等。如果未找到匹配项,则返回 'x'

PDP-11 上通常有一个控制台和几个 8 端口串行接口(interface)。所以没有 ttyx。您可以在 /dev 中为设备命名任何您想要的名称。因此很容易避免 /dev/ttyx 成为实际设备。

goto 这样的命令可以使用 ttyn(0) != 'x' 来确定用户是否真的在终端上键入命令。


Here是默认配置文件,/etc/ttys,由 V6 中的 init 使用。控制台是 tty8

在 V7 Unix 中,ttyn 的功能被 ttyname 取代,可以容纳更长的设备名称,以及 isatty ,如果文件描述符是终端设备,则返回 true。 goto命令在 V7 中不存在。

关于tty - 函数 ttyn(3) 返回什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27681693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com