写入/dev/ptmx是什么意思

hly*_*y19 5 c ssh terminal sshfs

我正在阅读 sshfs 的源代码。我发现当尝试向 ssh 提供密码时,它会将密码写入 /dev/ptmx。

write(sshfs.ptyfd, sshfs.password, strlen(sshfs.password));
Run Code Online (Sandbox Code Playgroud)

我知道它是伪终端的主端,但我不太明白写入它的含义。我尝试向 /dev/ptmx 回显某些内容,但什么也没发生。也许我还没有完全理解pts和ptmx的机制。

Flo*_*olz 5

ptmx 的想法是,您的应用程序创建一个虚拟控制台,用于与其他应用程序或操作系统进行通信。

通过打开 ptmx,应用程序会获取一个归档描述符(基本上是一个数字),这使您的应用程序可以通过虚拟终端与其他应用程序进行通信。

例如,这些其他应用程序可以通过打开 /dev/pts/12345 来打开您的终端。

回显到 /dev/ptmx 没有任何意义,因为 /dev/ptmx 的唯一功能是为应用程序提供新创建的 /dev/pts/ 设备的文件描述符,该文件描述符可供回显使用。

  • 实际上不是......它就像一个虚拟控制台商店,可以与其他应用程序进行通信...您打开它并创建一个订单=>您收到一个引用新创建的串行控制台的文件描述符。ptmx 只是虚拟串行控制台的提供者 - 而不是实际的串行控制台。 (4认同)