c++ - 在 Linux C++ 中获取 PTY 的最简单方法

标签 c++ linux bash qt pty

我正在编写一些需要 Bash 接口(interface)的程序。起初我以为我可以只使用 popen 或 QProcess。 (我正在使用 QT C++)它们工作正常,但我无法让它们在 tty 中运行 Bash,如果你要使用像 sudo 这样的东西,你需要它,它需要 tty/pty 来接受密码。

我在 GNU 标准 C 库中发现了一些类似 forkpty()、openpty() 等的东西,但无法弄清楚如何使用它们或找到任何好的示例,即使在阅读了它们相应的联机帮助页之后也是如此。从字面上看,我程序的这一部分需要做的就是能够从运行/bin/bash 的 tty 读取/写入。真的有那么简单吗?还是远不止于此?

如果是这样,谁能提供一个简明的例子来说明如何做到这一点? 提前致谢! 编辑:Here's我想出的头文件!

最佳答案

考虑运行 /bin/sh -s 的选项,这意味着“从标准输入读取命令”。这消除了模拟终端的需要。

关于c++ - 在 Linux C++ 中获取 PTY 的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2155314/

相关文章:

c++ - 为什么 isocpp 允许我们超过枚举类值?

c - 如何向 Linux 系统添加/注册唯一的 errno 和相应的错误消息?

c++ - 让函数返回模板类型

ruby-on-rails - Ubuntu Linux 上的 Ruby on Rails : creating a new class throws db error

linux - 如何为 Linux 中的文件夹生成 list (文件列表及其大小和数量)

bash - 为文件夹中的每个图像生成缩略图

bash - 存储在变量中的赋值语句导致在 Bash 中找不到命令错误

linux - 错误 : invalid PID number "" in "/run/nginx.pid"

c++ - 如何更快地比较结构(谁遇到最多人的问题)

使用 C++ 的 PHP 扩展