| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Системное программирование > Как запускать процессы через IPC? |
| Автор: RainMan 26.5.2006, 09:58 | ||||
| Здравствуйте! Подскажите пожалуйста как все таки правильно пользоваться IPC::Open2 ? Для всех ли приложений можно открыв процесс послыть комманды на выполнение? Видел примеры выполнения скриптов через IPC которые пользуются простенькими программами - тут все ясно. А как быть с программами посложнее?
тут все понятно - есть программа "bc" на вход которой подставляют выражения.. а вот мне хотелось бы проделать вот какую вещь: у меня есть программа Nedit (текстовый редактор, вы в курсе я думаю). запускается как "nedit <file_name>" Каким образом можно открыть этот текстовый редактор и через комманду Print напечатать в доккументе какое нибудь слово? Такое возможно вообще? такой вот код не прокатывает.. открывается просто текстовый редактор, но в нем ничего не появляется..
Спасибо. |
| Автор: RainMan 27.5.2006, 20:49 |
| Ни у кого нет никаких вариантов??? |
| Автор: sharq 9.6.2006, 10:24 |
| RainMan, попробуй открыть через pipe обычной командой open. |
| Автор: RainMan 9.6.2006, 10:33 |
| Извиняюсь может за глупый вопрос но это как? |
| Автор: sharq 12.6.2006, 19:50 | ||||||
| RainMan, почитай perldoc -f open и про pipe (трубы). Не знаю, умеет ли nedit обрабатывать STDIN. Вот пример с использованием моей программы:
А вот сама программа, которая обрабатывает STDIN - test.pl.
Вот результат работы.
|
| Автор: RainMan 12.6.2006, 20:00 |
| sharq, спасибо за совет... почитал про эти функции, правда про них я уже знаю, тока не в курсе был что это pipe зовется Твой код работает отлично. Забудем про nedit пока, он явным образом не работает с stdin у меня есть другая прога которая с ним работает. Однако она грузится очень долго (из-за получения лицензий + много плагинов в себе имеет всяческих.. в общем секунд 30-40 она грузится). Как бы дождаться того момента когда все это хозяйство загрузится и программа будет готова реагировать на комманды? Спасибо за помощь. |