[fpc-pascal] Redirecting input to a child process
Anton Shepelev
anton.txt at gmail.com
Sun May 8 22:16:47 CEST 2011
waldo kitty:
> how about sending the ^Z line the CRLF is being sent to
> indicate line breaks??
This I had tried even before posting the question :)
Ludo Brands:
> I don't see where you close the mProcess.input.
In my original post I call:
MoreProcess.CloseInput();
As for the program based on SteveG's code, I tried to keep
his code as intact as possible, so I didn't close the input
handle in it.
> Pipes.pp doesn't have any routines to clean up the pipe
> handles which is according to msdn not good.
You mean reading from the pipes after the closing of the
child process?
> According to msdn... the pipe handles should be created
> non-inheritable in order to detect EOF.
Oh, I missed this. My WinApi program creates pipes with:
SECURITY_ATTRIBUTES.bInheritHandle = true;
in order for the handles to be properly inherited in the
child process. That must be my problem. The only other way
to do it is to use the DuplicateHandle function which will
create in inherarable duplicate of the original handle, that
can then be passed to the CreateProcess. The original handle
will remain non-inheritable and should trigger EOF on clo-
sure.
Thank you for your investigation. I'll try duplicating the
handles and report the results.
Anton
More information about the fpc-pascal
mailing list