我正在编写一些需要 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/