【问题标题】:Simplest way to get a PTY in Linux C++在 Linux C++ 中获取 PTY 的最简单方法
【发布时间】:2010-01-28 14:51:37
【问题描述】:

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

我在 GNU 标准 C 库中找到了一些诸如 forkpty()、openpty() 等的东西,但即使在阅读了它们相应的手册页之后,也无法弄清楚如何使用它们或找到任何好的示例。从字面上看,我的程序的这一部分需要做的是能够从运行 /bin/bash 的 tty 读取/写入。真的就这么简单,还是有比表面上更复杂的东西?

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

【问题讨论】:

标签: c++ linux bash qt pty


【解决方案1】:

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

【讨论】:

  • 除了某些命令(如 'sudo' )将自动终止,除非它们在某种 tty 中运行。 (模拟的或真实的。)只需尝试在脚本中使用 sudo 即可。它行不通。你需要做一个 pty。
猜你喜欢
  • 2011-10-11
  • 2011-04-29
  • 2016-03-15
  • 2015-05-21
  • 2011-12-11
  • 2014-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多