Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Работа с консолью через пайпы


Автор: Morfoid 7.3.2015, 00:28
Здравствуйте. 
Есть такая проблема. Мне необходимо производить чтение из запускаемой моей программой дочерней консоли, которая в свою очередь получает данные из своей дочерней консоли. При использовании pipe возникает их взаимоблокировка , т.е. вся цепочка: моя консоль<->дочерняя консоль<->её дочерняя консоль просто "зависает". Есть идеи? Хотелось бы также обсудить вопрос о возможности создания и более длинных цепочек если все остальные консоли являются сторонними и нет доступа к их исходному коду и их нельзя реверсить и патчить. Есть идеи?

Автор: feodorv 7.3.2015, 15:43
Цитата(Morfoid @  7.3.2015,  00:28 Найти цитируемый пост)
При использовании pipe возникает их взаимоблокировка

А как Вы их используете? 
Почему не http://forum.vingrad.ru/index.php?showtopic=359865&view=findpost&p=2631857?

Автор: Morfoid 7.3.2015, 18:42
У меня нет никакой возможности влиять на дочерний процесс и его дочерний. Подключиться через пайп естественно получается, но дочерняя консоль начинает при запуске работать со своей дочерней. Результат в том что моя и дочерняя консоли зависают на ReadFile.

Автор: feodorv 7.3.2015, 22:33
Цитата(Morfoid @  7.3.2015,  18:42 Найти цитируемый пост)
зависают на ReadFile

А данные-то в пайп поступают?

Автор: xvr 10.3.2015, 11:14
Цитата(Morfoid @  7.3.2015,  18:42 Найти цитируемый пост)
Подключиться через пайп естественно получается, но дочерняя консоль

Это взаимоисключающие понятия. Если вы соединяете 2 консольных процесса через пайп, то консоль (физически) у них будет одна. Если у вас вылазят несколько физических консольных окон, то что то в пайпах у вас не срослось  smile 
Из командной строки через пайпы они нормально работают?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)