如何从 xterm.js 获取 stty echo 模式?

How to get stty echo mode from xterm.js?

我希望能够知道 xterm.js 中回显模式何时关闭(例如,输入密码时)。 stty 可以报告和更改该信息,但(显然)不能在等待用户输入密码时执行。查询echo状态的API是什么?

在 linux、macos 和其他 POSIX 兼容操作系统下看到的终端指标是在终端接口部分指定的 POSIX 功能:

终端周围的许多设置(如 ECHO 模式)的有趣部分是 termios API,您可以在 C 中使用 tcgetattr / tcsetattr 访问它在兼容的系统上。此外,许多语言为 API 提供某种绑定(例如 python 模块 termios)。

可以在大多数 POSIX 系统上通过调用 man termiosman tcgetattr 访问文档。

来自网络的示例文档:

编辑:

重新阅读您的问题 - 如果您希望能够从 xterm.js 获取 ECHO 状态,那么这并不容易。这样做的原因很麻烦 - xterm.js 是 PTY 背后的模拟器。 PTY 将终端操作分为主控部分和从属部分,其中主控部分充当终端进程(此处为 xterm.js),从属部分是附加到该终端的进程。虽然 POSIX 只保证 termios API 在从属部分工作(它的整个写作是为了消费进程),BSD 风格的系统也允许 termios 语义主要部分。

TL;DR: 在 linux 和 macOS 上,您可以在主 文件描述符上使用 termios API 由您的 PTY 绑定持有(例如 node-pty),而这仅适用于 solaris 克隆(或任何其他基于 STREAMS 的 TTY)下的从 文件描述符 实施)。