简体   繁体   中英

Execute and Capture one program from another

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?

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 .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM