взаимодействовать (stdin / out) с программами командной строки во время выполнения в C - PullRequest
2 голосов
/ 11 января 2010

Я думаю, что я хочу сделать, это называется переносом графического интерфейса / командной строки sftp (1). Мне нужен простой способ запустить эту программу и реагировать на ее вывод во время работы. Кроме того, я должен иметь возможность отправлять входные данные, требуется полное взаимодействие.

Я пытался использовать forkpty (эмулированный TTY), но не было ни одного хорошего примера, который можно найти с использованием forkpty для этой работы, вместо этого было несколько предупреждений о переполнениях в аргументах и ​​рекомендациях не использовать его. Еще одна странная вещь об этом - аргумент о размере окна ...

Пожалуйста, приведите один или несколько примеров того, как вызывать и взаимодействовать с программами командной строки на C, или другой способ интеграции sftp в графический интерфейс iPhone

Ответы [ 3 ]

2 голосов
/ 11 января 2010

Радуйтесь! Ожидайте, был создан, чтобы решить именно вашу проблему. Он основан на Tcl, который не очень приятен, но инструмент приятен, он действительно хорошо разработан, и есть хорошая книга Дона Либеса, который создал инструмент.

Ожидайте, что сценарии написаны на Tcl, но интегрировать сценарий Tcl в C-программу очень просто, так что другие части C-программы даже не знают, что Tcl используется.

1 голос
/ 11 января 2010

Использовали ли вы какой-либо из популярных языков сценариев Ruby / Python / Perl / etc? Все они имеют довольно полнофункциональные библиотеки для открытия и общения с другими процессами.

модуль subprocess в Python, например, или Popen в Ruby ... в Интернете также было бы много справочных материалов, чтобы помочь вам.

Если также требуется графический интерфейс, вы можете посмотреть GTK extensions

0 голосов
/ 12 января 2010

Вместо вызова sftp(1), как насчет использования libssh ?Он имеет полную поддержку sftp .

...