Krzysztof Mossakowski
Programowanie w środowisku Windows
2004 - Zadania
Procesy, wątki
Wersja C
Wzór programu
Dwa programy
(parent i child)
, drugi z nich uruchamiany w procesie potomnym pierwszego
Działanie programu
parent
:
stworzenie potoku (pipe) anonimowego (do komunikacji z procesem potomnym)
uruchomienie w programie potomnym programu
child
odbiór wiadomości z procesu potomnego i ich wyświetlanie
Działanie programu
child
:
dialog z polem do wprowadzania tekstu i przycisk do zapisu tekstu
po naciśnięciu przycisku program zapisuje wprowadzony tekst do standardowego wyjścia
w przypadku, gdy zapis do standardowego wyścia nie jest możliwy należy wprowadzony tekst pokazać w dialogu MessageBox
szczegóły implementcji:
proces macierzysty tworzy potok anonimowy (do komunikacji z procesem potomnym)
uchwyty końców potoku muszą mieć możliwość dziedziczenia przez proces potomny
standartowe wyjście procesu należy przekierować na wejście potoku
uruchomiony proces potomny musi dziedziczyć uchwyty potoku
zapisywanie do standardowego wyjście w procesie potomnym jest zapisywaniem do potoku (z potoku może czytać proces macierzysty)
szczegóły w artykule MSDN
(link poniżej)
- kopiowanie kodu z przykładu będzie karane
Wskazówki:
CreateProcess, CreateThread
CreatePipe
GetStdHandle, SetStdHandle
DuplicateHandle, CloseHandle
Creating a Child Process with Redirected Input and Output