gpt4 book ai didi

linux - 使用linux伪终端API进行多个调试终端

转载 作者:太空宇宙 更新时间:2023-11-04 04:20:42 27 4
gpt4 key购买 nike

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 现状的问题。上面提到的示例,根据需要将 fork /执行的程序的 stdin/stdout/stderr 流重定向到 PTY 从站......PTY 的那一侧都很高兴。

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

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

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

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

最佳答案

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

关于linux - 使用linux伪终端API进行多个调试终端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13557522/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com