FreeBSD 上的“tty”是啥?
Posted
技术标签:
【中文标题】FreeBSD 上的“tty”是啥?【英文标题】:what is "tty" on FreeBSD?FreeBSD 上的“tty”是什么? 【发布时间】:2011-05-30 18:21:54 【问题描述】:"uprintf()函数输出到当前进程的控制tty"
这是来自 Freebsd MAN 的 uprintf() 的描述。 我不明白什么是tty? 谢谢。愉快的假期!
【问题讨论】:
这可能有助于解决问题:linusakesson.net/programming/tty/index.php 这在What do pty and tty mean ? 中有介绍。 【参考方案1】:tty 是字符 I/O 设备的抽象模型。它是最直接的系统接口,带有相应的应用程序接口。
曾几何时,有一家名为Teletype的公司。他们制造了硬拷贝自动打字机设备,几十年来一直用作通信终端,然后重新用作硬拷贝计算机终端。为了避免使用品牌名称,电传打字机被推广到电传打字机或电传打印机。
最初它们是实用的,但相当丑陋......
但后来的型号(这款 43 型号是 1970 年代后期的)非常漂亮......
微处理器使视频显示终端变得实用,以前,硬拷贝终端相当便宜,而且更受欢迎。碰巧的是,Unix tty 抽象也适用于视频终端。
而且,它适用于 xterm 窗口和 xterm 的子窗口(通常称为 Terminal),这些窗口将在 Linux、Mac 和 Unix 的其他后代上找到。 ..
【讨论】:
【参考方案2】:“控制 tty”的概念具有现代意义,但“tty”这个词是一个非常古老的概念。 tty = 电传打字机,这是人们过去与计算机交流的方式。 FreeBSD 手册页中的“tty”概念是指接受用户输入程序的设备。
现在,windows 等也接受用户输入。但这并不是“tty”的确切含义。只有某些窗口有与之关联的 tty。通常,例如,大多数 shell 窗口。在这种情况下,tty 称为伪终端,也称为“pty”。这是一个“伪”终端,因为它不与特定设备关联。事实上,它是由一个伪装成终端的程序控制的。在窗口的情况下,显示窗口的程序。
在 Unices 中,tty 在程序中具有特殊的作用。大多数进程都有一个“控制 tty”或“控制终端”。这个 tty 被允许向他们发送某些类型的信号,不管进程有什么特权。例如,SIGTSTP。
【讨论】:
【参考方案3】:根据***,该名称来自电传打字机,缩写为“TTY”。直接打印到 tty 意味着它直接将消息打印到控制台,即使 STDOUT 已被重定向到文件或其他进程。
【讨论】:
【参考方案4】:实际上是您系统中当前输入设备的名称...在大多数情况下是您的键盘。
mac-user:~$ tty
/dev/ttys001
这意味着您的键盘是设备 ttys001
【讨论】:
以上是关于FreeBSD 上的“tty”是啥?的主要内容,如果未能解决你的问题,请参考以下文章
在 C 中找出 Linux 和 FreeBSD 上的 MAC 地址
无法通过 FreeBSD 上的套接字 '/tmp/mysql.sock' (38)' 连接到本地 MySQL 服务器