Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.07.27;
Скачать: 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 вся ветка

Текущий архив: 2008.07.27;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.019 c
15-1213088790
zAlexandrz
2008-06-10 13:06
2008.07.27
Проблема с трассирокой программы


2-1214306845
kzmd
2008-06-24 15:27
2008.07.27
Вот хотелось бы начать , но незнаю как начать !


2-1214474241
Fobiya
2008-06-26 13:57
2008.07.27
Реакция на нажатие правой кнопки мыши


2-1214540511
alex810
2008-06-27 08:21
2008.07.27
Ошибка при подключении


2-1214822127
Igor23
2008-06-30 14:35
2008.07.27
Работа с IdHTTP