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”是啥?的主要内容,如果未能解决你的问题,请参考以下文章

FreeBSD下安装lua

在 C 中找出 Linux 和 FreeBSD 上的 MAC 地址

无法通过 FreeBSD 上的套接字 '/tmp/mysql.sock' (38)' 连接到本地 MySQL 服务器

在FreeBSD上使用PHP-7是否安全可靠?

FreeBSD 上的 NFS V4 托管,客户端和服务器都可以安装,但文件系统上没有读取或写入,报告输入/输出错误

如何在 FreeBSD 9.1 系统中使用 libdb-4.2?