“uprintf()函数输出到当前进程'控制tty”
这是来自Freebsd MAN的uprintf()的描述。 我不明白什么是tty? 谢谢。快乐假期!
答案 0 :(得分:19)
tty 是字符I / O设备的抽象模型。它最直接的是系统接口,具有相应的应用程序接口。
曾几何时,有一家名为 Teletype 的公司。他们制作了硬拷贝自动打字机设备,几十年来一直用作通信终端,然后再用作硬拷贝计算机终端。 Teletype被推广到电传打字机或电传打字机,以避免使用品牌名称。
最初它们功能齐全,但相当难看......
但后来的模特(这个型号43来自1970年代后期)非常漂亮......
微处理器使视频显示终端变得实用,以前,硬拷贝终端相当便宜并且更受欢迎。碰巧,Unix tty抽象也适用于视频终端。
并且,它适用于 xterm 窗口,以及xterm的子代(通常称为 Terminal ),可以在Linux,Mac和Unix的其他后代中找到。 ..
答案 1 :(得分:5)
“控制tty”的概念具有现代意义,但“tty”这个词是一个非常古老的概念。 tty = teletype,这就是人们用来与计算机通信的方式。 FreeBSD手册页中的'tty'概念指的是接受程序用户输入的设备。
现在,Windows等也在接受用户输入。但这不是'tty'所指的确切含义。只有某些窗口有一个tty与它们相关联。通常,例如,大多数shell窗口。在这种情况下,tty被称为伪终端,也被称为'pty'。它是一个“伪”终端,因为它与特定设备无关。事实上,它是由一个假装成终端的程序控制的。对于窗口,显示窗口的程序。
在Unices中,tty在程序中具有特殊作用。大多数流程都有“控制tty”或“控制终端”。无论该过程具有什么特权,都允许该tty向它们发送某些类型的信号。例如,SIGTSTP。
答案 2 :(得分:0)
根据维基百科,该名称来自电传打字机,缩写为“TTY”。直接打印到tty表示它会直接将消息打印到控制台,即使STDOUT已重定向到文件或其他进程。
答案 3 :(得分:0)
实际上是您系统中当前输入设备的名称...在大多数情况下是您的键盘。
mac-user:~$ tty
/dev/ttys001
这意味着您的键盘是设备ttys001