Связь ввода-вывода между двумя программами - PullRequest
1 голос
/ 04 февраля 2010

У меня есть сторонняя java-программа под названием kgsgtp.jar, которая должна взаимодействовать с моей собственной C ++ (но в основном просто C) программой. Документация для Java-программы гласит:

=====================

Вам просто нужно убедиться, что stdin для kgsGtp подключен к выход двигателя и стандартный вывод для kgsGtp подключен к двигателю вход. Как правило, самый простой способ сделать это, разветвления и изгнания kgsGtp изнутри вашего движка.

=====================

Теперь я достаточно компетентный программист и чувствую, что, вероятно, мог бы все это устроить, учитывая еще несколько подсказок. Я подозреваю, что если описание было расширено до 10,? строк вместо трех с половиной, тогда я бы отсортировал их в кратчайшие сроки.

Я предполагаю, что документ подразумевает подвисание, использует ли WinExec () или CreateProcess () в моей программе для выполнения Java-программы? Я также предполагаю, что, возможно, когда я использую правильную функцию, факт того, что stdin одной программы соответствует stdout другой, произойдет автоматически?

Ответы [ 2 ]

4 голосов
/ 04 февраля 2010

Это описание для unixes, где для этого будет использоваться последовательность вызовов pipe (), dup2 (), fork () / exec ().

Взгляните на фрагмент кода вответ от Дениса здесь: Как получить консольный вывод на C ++ с помощью программы Windows? , следует начать.

Редактировать: более полный пример здесь: http://support.microsoft.com/kb/190351

0 голосов
/ 04 февраля 2010

То, что вам нужно, эквивалентно POSIX dup () на окнах может быть это

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