Самый простой способ получить PTY в Linux C ++ - PullRequest
3 голосов
/ 28 января 2010

Я программирую что-то, что требует интерфейса для Bash. Сначала я подумал, что могу просто использовать popen или QProcess. (Я использую QT C ++) Они работают нормально, но я не могу заставить их запускать Bash в tty, который вам нужен, если вы собираетесь использовать что-то вроде sudo, для которого требуется tty / pty для принятия пароля.

Я обнаружил некоторые вещи, такие как forkpty (), openpty () и т. Д. В библиотеках GNU Standard C, но не мог понять, как их использовать или найти какие-либо хорошие примеры, даже после прочтения соответствующих страниц man. Буквально все, что нужно сделать этой части моей программы, - это уметь читать / писать из tty, работающего в / bin / bash. Это действительно так просто, или это нечто большее, чем кажется на первый взгляд?

Если это так, может ли кто-нибудь привести краткий пример того, как это сделать? Заранее спасибо! РЕДАКТИРОВАТЬ: Вот файл заголовка, который я придумал!

1 Ответ

0 голосов
/ 08 февраля 2010

Рассмотрим вариант запуска /bin/sh -s, что означает «чтение команд со стандартного ввода». Это устраняет необходимость эмулировать терминал.

...