views:

102

answers:

1

In win32 programming in C:

Whats the best way to execute a win32 console program within another win32 program, and have the program that started the execution capture the output? At the moment I made the program redirect output to a file, but I am sure I must be able to open some sort of pipe?

+4  A: 

Use the CreateProcess Win32 API to start the child process.

Pass to it a STARTUPINFO structure with hStdInput, hStdOutput and hStdError handles set to file handles you opened (either real files or memory mapped files should work). You don't need to specify all three, you can redirect only the ones you really need; most common case is hStdOutput.

If you want to communicate with the child process (through hStdInput), you need to wait for it to initialize by calling WaitForInputIdle.

Franci Penov
Thanks, directing stdoutput to a memory map file was exactally what I was after.