Вниз
Скачать: CL | DM;

Возвращаясь к неименованным пайпам   Найти похожие ветки 

← →
Поросенок Винни-Пух ©   (2008-06-09 02:42) [0]

В PlatformSdk приведен простой пример обмена данными между двумя процессами через неименованные каналы.
Схема такая: делаются два вызова CreatePipe (для StdIn и StdOut дочернего процесса)
Потом два DuplicateHandle и createprocess c передачей в стартапинфо двух хендлов.
Далее родительский процесс делает writefile в stdin дочернего и закрывает этот хендл чтобы там завершился readfile.
После этого идет чтение из stdout дочернего процесса, с предвариельным закрыванием его stdout.

Пример работает замечательно, но есть вопрос:
Как сделать так, чтобы рид и райт в дочернем мог завершаться без закрытия хендлов?
Мне требуется передать из дочернего две порции информации.
Схематично это выглядит так

Главный пишет блок информации дочернему.
Дочерний обрабатывает инфу и отвечает блоком № 1
Главный читает ответный блок №1
Дочерний посылает блок №2
Главный читает блок №2

Первое что приходит в голову - предварить оба блока заголовком, в котором указать длины/смещение и делать все за один цикл обмена.


← →
Slym ©   (2008-06-09 07:58) [1]

передай CTRL+Z (непомню код... вроде #26)


← →
Evgeny V ©   (2008-06-09 09:55) [2]


> Возвращаясь к неименованным пайпам


> как сделать так, чтобы рид и райт в дочернем мог завершаться
> без закрытия хендлов?

Их и не надо закрывать, если они тебе нужны.
Делай два пайпа - один чтобы передавать данные из главного потока в дочерний, другой что бы передавать данные из дочернего потока в главный. Когда необходимость в пайпах отпадет - закроешь хэндлы.


← →
Mystic ©   (2008-06-09 10:31) [3]

Вот когда-то писал что-то подобное... Может поможет?
http://mu.webest.net/prog/mu-console.1.00a.zip


← →
Поросенок Винни-Пух ©   (2008-06-09 12:09) [4]

ага. сенкс.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.01 c
15-1213202010
Dmitry S
2008-06-11 20:33
2008.07.27
Упорядочивание mp3 архива.


15-1213269006
fics
2008-06-12 15:10
2008.07.27
Программы для построения графов


2-1214292989
NeiL
2008-06-24 11:36
2008.07.27
Декодировать число


2-1214220645
ciborg
2008-06-23 15:30
2008.07.27
Сбор информации о системе


2-1214304266
Голденко
2008-06-24 14:44
2008.07.27
Сортировать таблицу в случайном порядке в SQL




   Наверх