Программирование на C / Linux: псевдо-терминалы: как перенаправить с текущего stdio на pty и перенаправить обратно после использования - PullRequest
3 голосов
/ 23 октября 2010

Я пытаюсь создать простую программу удаленного управления, где пользователь может подключиться к моему маленькому устройству и «перенять» текущее состояние системы. Например:

Загрузка системы с консоли = последовательный порт -> клиент подключается, перенаправляет ввод / вывод в сокет

Я уже выполнил перенаправление на сетевую часть (прочитав много man-страниц. Человек, я до сих пор не оценил эти man-страницы!: D), используя pty-функциональность Linux.

openpty () -> grantpt () -> unlockpt () -> клиент подключается, выполнить login_tty ()

Моя программа затем выполняет мониторинг главного FD и сокета. Однако у меня есть большая проблема: я не знаю, как перенаправить вывод обратно. Я попробовал следующее:

Жесткий код, открывающий файл последовательного порта

o использовать открытый файл последовательного порта в login_tty ()

но, похоже, это не работает (что-то о группах процессов и о том, чтобы быть лидером группы процессов после выполнения первого login_tty ()). Есть предложения или идеи?

Есть ли в login_tty () какая-нибудь "обратная" функция?

1 Ответ

1 голос
/ 29 июня 2011

Это очень похоже на то, что делает "экран".Вы можете изучить код и скопировать его оттуда: http://www.gnu.org/software/screen/

...