簡體   English   中英

在 Linux C++ 中獲得 PTY 的最簡單方法

[英]Simplest way to get a PTY in Linux C++

我正在編寫需要 Bash 接口的程序。起初我以為我可以只使用 popen 或 QProcess。 (我正在使用 QT C++ )它們工作正常,但我無法讓它們在 tty 中運行 Bash,如果你要使用像 sudo 這樣的東西,你需要它,它需要 tty/pty 來接受密碼。

我在 GNU 標准 C 庫中找到了一些類似 forkpty()、openpty() 等的東西,但無法弄清楚如何使用它們或找到任何好的示例,即使在閱讀了它們相應的聯機幫助頁之后也是如此。 從字面上看,我程序的這一部分需要做的就是能夠從運行 /bin/bash 的 tty 讀取/寫入。 真的有那么簡單,還是比看上去的要復雜得多?

如果是這樣,誰能提供一個簡明的例子來說明如何做到這一點? 在此先感謝:編輯:這是我想出的 header 文件!

如果您有 Python,請嘗試以下操作:

QProcess p;
p.start("python", {"-c", "import pty; pty.spawn("/bin/bash")})"

考慮運行/bin/sh -s的選項,這意味着“從標准輸入讀取命令”。 這消除了模擬終端的需要。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM