Я заимствую короткий код C, который устанавливает сеанс telnet с использованием схемы дочерний-родительский и обрабатывает связь между обоими процессами через псевдотерминальное устройство.
Код работает довольно хорошо, но с одним существенным недостатком: процесс telnet не выполняет большинство escape-последовательностей, вместо этого печатая их (ESC печатает ^[[, стрелки ^[[A ^[[B ^[[C ^[[D, так далее.).
Я уже провел довольно много исследований, но я не смог найти никаких хороших ресурсов, объясняющих, как вы должны обрабатывать или передавать пользовательский ввод, чтобы конечный процесс мог правильно интерпретировать специальные коды, таким образом достигая действительно интерактивного сеанса.
Базовый код: http://dl.dropbox.com/u/15117414/pty.c