0

Ubuntu Linux:如何获取指向
伪终端对的主端的路径?......从端很容易......但主端似乎只作为一个打开的文件描述符存在,但似乎没有有效的 Linux 路径。

关于工作 Linux 伪终端示例http://www.man7.org/tlpi/code/online/all_files_by_chapter.html#ch64 在这本非常好的 Liunx API 书的最后一章中介绍:http://www.nostarch .com/tlpi

关于 Linux linux 伪终端 API 当前状态的问题。上面提到的示例,根据 PTY 从站的要求将分叉/执行程序的 stdin/stdout/stderr 流重定向到 PTY 从站……在 PTY 的那一侧很高兴。

但是我需要作为参数传递给多选项卡式终端仿真器进程的伪终端主机路径似乎还不存在。

我的问题是关于为伪终端对的主端创建命名路径......尽我所能,在上面提到的示例代码中,只有 PTY 从端实际上有一个名称,作为 PTY 主端仅通过打开的文件描述符引用...当我通过“readlink(”/dev/fd/3“...)查询主端路径时,它返回 PTY 主克隆路径”/ dev/ptmx”,因此我推测 PTY Master 端可能还没有路径名?..我想我可能需要通过调用链接()来创建一个有效的路径....但是链接()只接受一个现有的路径,而不是一个打开的文件描述符作为它的参数?...所以我尝试调用 link("/dev/ptmx", NewPTM_name) refurning 到 PTY cloan 设备,希望它可以创建一个链接到生成的 PTY 主机边,但该调用失败,返回-1。

然后我想将这个 PTY Master 侧路径字符串参数传递给终端仿真器,可能是通过它的命令行,或者在 RoxTerm 的情况下可能是 DBus ...

我意识到许多终端仿真器程序都有一个 -e 或 -x 参数,允许一个人在终端窗口内运行程序......不幸的是,采用这种方法并不倾向于让一个人对父/子进程树有太多控制权...这是必需的,因为这项工作支持共享内存多处理系统。

4

1 回答 1

0

Liunx 伪终端 API 的当前状态无法将主端 Linux PTY 路径可靠地传递给终端仿真程序,因为伪终端接口的主端仅可用作打开文件描述符......。 . 但是 PTY 接口的从属端确实拥有一个路径名,可以作为程序之间的参数传递.. 正如 nm 所建议的那样。人们可以通过 DBus 请求终端仿真程序创建一个新的(命名的)终端选项卡,然后返回来解决如何将程序的 stdio 互连到终端仿真窗口中的新选项卡的接口限制作为该 DBus 调用的结果,关联的从属侧路径..
..这导致了以下问题“如何:C ++,DBus调用创建新终端的终端仿真程序,返回从PTY”

于 2012-11-30T23:26:43.263 回答