LINUX.ORG.RU

Пример управления программой


0

0

Подскажите где взять максимально простой и прокомментированный исходник консольной программы на С, в котором было бы реализовано по крайней мере три возможных варианта управления программой: (а) интерактивный через командную строку, (б) через чтение команд из файла и (в) через чтение этих же команд из пайпов для руления из другой программы.

Кстати, еще один вопрос. Какой наиболее портабельный между разными ОС способ управления одной программы из другой?

>>Какой наиболее портабельный между разными ОС способ управления одной программы из другой?

сокеты

alex_custov ★★★★★
()

> Кстати, еще один вопрос. Какой наиболее портабельный между разными ОС способ управления одной программы из другой?

реализации CORBA есть подо все платформы, на WEB Services тоже есть стандарты и реализации. Проблема в том что эти двое уж очень тяжеловесны поэтому в реальности чаще выбирают named pipe.

gods-little-toy ★★★
()

> Подскажите где взять максимально простой и прокомментированный исходник консольной программы на С, в котором было бы реализовано по крайней мере три возможных варианта управления программой: (а) интерактивный через командную строку, (б) через чтение команд из файла и (в) через чтение этих же команд из пайпов для руления из другой программы.

Смотри исходники bash, sed, awk... Там команды для можно получать как параметром ком.строки, так и читать из файла или пайпа.

> Кстати, еще один вопрос. Какой наиболее портабельный между разными ОС способ управления одной программы из другой?


пайп

gaa ★★
()

А! а еще RPC есть... не знаю правда что с ним под windows

gods-little-toy ★★★
()

А чего там писать-то? Управление из консоли -- scanf и разбор прочитанной строки. Из файла -- периодически смотреть на дату его последнего изменения и сравнивать с запомненной последней, если не равны -- прочитать/отпарсить/выполнить-если-есть-что. Пайпы -- опрос его на наличие в буфере чего-нить, далее по накатанной дорожке: чтение-всего/парсинг/выполнение. Примеров по интернетам валяется -- хоть ложкой ешь. Не ленись, и найди сам.

one_more_hokum ★★★
()
Ответ на: комментарий от one_more_hokum

Спасибо за ответы. Значит именованные пайпы. Я тут кажется обнаружил еще один пример программы - gnuplot.

Rarruga
() автор топика

Named pipes под виндовс и unix domain sockets (те, что X Server тоже использует) под *nix. Вот только придётся оба варианта отдельно программировать. Хотя под линукс это решается довольно просто, под виндовсом же придётся чуть сложнее.

anonymous
()
Ответ на: комментарий от anonymous

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

Андрей

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.