Как перехватить I/O потоки стороннего .exe?

Доброго времени суток.

Есть консольная программа process.exe, путь которой известен.
Следующий алгоритм позволяет мне выполнить его в не фоновом режиме, пошагово получая весь его Output поток в переменную childCout.
#include <iostream>
using namespace std;

int main(void)
{
	char *childCout = new char[130];
	FILE *childProcess;

	childProcess = _popen("process.exe", "rt");

	while (fgets(childCout, 128, childProcess))
	{
		cout << childCout;
	}

	return 0;
}

Однако, если process.exe попросит что-то ввести в свой Input-поток, приложение-родитель будет вечно ожидать, пока в process.exe пользователь что-то введет.
Необходим такой алгоритм, при котором мы будем уведомлены о том, что приложение-ребёнок просит что-то ввести, и тем же кодом передадим ему определенную строку как введенную (например, cinExample). Также, приложение-ребёнок должно выполнятся фоново, т.е. не иметь собственного окна. (И также будем получать что оно выводит в Output поток, как в алгоритме выше).

Буду очень благодарен отправителю литературы на эту тему, или, в идеале, самого алгоритма.
  • Вопрос задан
  • 282 просмотра
Решения вопроса 1
Nipheris
@Nipheris Куратор тега C++
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы