This is the mail archive of the
cygwin@sourceware.cygnus.com
mailing list for the Cygwin project.
RE: Right way in Win32 to redirect child process stdout?
- To: "gnu-win32 at cygnus dot com" <gnu-win32 at cygnus dot com>, "'Igor boukanov'" <boukanov at fi dot uib dot no>
- Subject: RE: Right way in Win32 to redirect child process stdout?
- From: Sergey Okhapkin <sos at prospect dot com dot ru>
- Date: Fri, 2 Oct 1998 08:51:23 +0300
Igor boukanov wrote:
> HANDLE old = GetStdHandle(STD_OUTPUT_HANDLE);
> SetStdHandle(STD_OUTPUT_HANDLE, redirection_handle);
> CreateProcess(...);
> SetStdHandle(STD_OUTPUT_HANDLE, old);
> ..
>
> does not work in multithreading program because there is a chance that
some thread will write to stdout between SetStdHandle and CreateProcess
> spoiling child output to redirection_handle.
> But maybe there is a truly robust way to do that?
>
Do not set stdout of parent, but set child's stdout to redirection_handle
with StartupInfo structure passed to CreateProcess() call.
--
Sergey Okhapkin, http://www.lexa.ru/sos
Moscow, Russia
-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request@cygnus.com" with one line of text: "help".