如何从 ssh 会话内部获取伪终端主文件描述符?

baz*_*azz 3 c pts pty

在 C 或 bash 中,

我想知道如果可能的话,如何从 ssh 会话内部获取伪终端主机的文件描述符,该伪终端主机负责将输入输入到该会话的从站(pts)。

n. *_* m. 5

shell进程没有主文件描述符,只有从文件描述符。

shell 的父进程(无论是 sshd 或 xterm 或 screen 或其他进程)通过调用getpt(3)或创建一个新的主进程posix_openpt(3)。该函数返回主文件描述符。grantpt(3)然后,父进程通过调用、unlockpt(3)ptsname(3)的组合来获取从属文件描述符open(2)。这是针对 Linux 和其他 POSIXized 系统的,其他 *nix 可能会使用其他函数,但最终结果是相同的。父进程具有主/从文件描述符对。

然后,从属描述符(并且仅是从属描述符)被传递到 shell 作为其标准输入、输出和错误。