Как написать оболочку GUI вокруг программы командной строки в * C *? - PullRequest
1 голос
/ 06 декабря 2009

System (); может вызывать программу в PATH. Как можно отправить стандартный ввод, например, из текстовое поле в графическом интерфейсе для программы командной строки, такой как ftp, sftp ... со своими собственными подсказками?
System () ожидает завершения программы, но ftp не обходится без взаимодействия с пользователем. Также невозможно создать командный файл, поскольку он запускается только один раз во время выполнения при запуске.

Если возможно, напишите решение в C для UNIX, если не на любом другом языке.

Ответы [ 2 ]

2 голосов
/ 06 декабря 2009

Это возможно, но не все так просто. Вы можете взглянуть на Ожидайте . Это язык программирования, который автоматизирует взаимодействие с не-графическими инструментами. Библиотека Expect была встроена в другие вещи, такие как Python, поэтому я думаю, что вы можете встроить ее в свой код на C.

1 голос
/ 06 декабря 2009

Самый простой способ, который я знаю, это использовать forkpty() с exec(). forkpty() возвращает дескриптор файла, который перенаправляется в программы stdin и stdout. Все, что записано в дескриптор файла, является входом программы. Все, что написано программой, может быть прочитано из файлового дескриптора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...