2013-08-27 2 views
0

Я пытаюсь написать программу на C++, в которой он может взаимодействовать с другой программой на основе оболочки (коммерческий инструмент) и отправлять команды и получать результаты от нее. Я слышал о нескольких вариантах, и я хочу знать преимущества/недостатки каждого из них.Взаимодействие с программой на основе оболочки через C++

1) Я могу использовать «ожидание», чтобы сделать работу для меня. 2) Я могу использовать концепцию IPC и разделяемой памяти (которую я знаю) для этого.

Я был бы признателен, если бы кто-нибудь имел представление об этом, как эти два варианта работают или имеют какие-либо другие предложения.

Благодаря

+0

В какой ОС вы находитесь? –

+0

@AlanStokes Linux –

ответ

0

Один вещи, которые я сделал, которые работали очень хорошо было использовать socketpair() создать сокет, а затем использовать вилку + Exec для запуска дочернего процесса с его stdin и stdout перенаправлены на дальнем конце пары , После этого у вас просто есть удаленный процесс, подключенный через двунаправленный сокет, что довольно стандартно (хотя вы должны помнить, чтобы правильно подобрать дочерний процесс).

Смежные вопросы