0

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

4

1 回答 1

0

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

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

在大多数 POSIX 系统上,可以通过调用man termios或来访问该文档man tcgetattr

来自网络的示例文档:

编辑:

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

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

于 2021-08-16T20:53:28.850 回答