[fpc-pascal] Redirecting input to a child process

Ludo Brands ludo.brands at free.fr
Sun May 8 19:37:32 CEST 2011


I don't see where you close the mProcess.input. 
I tried several things myself which didn't work:
- ctrl Z Return is an eof when you run more in a cmd window.
- call explicitly CloseHandle(mProcess.Input.Handle); 

Pipes.pp doesn't have any routines to clean up the pipe handles which is
according to msdn not good. Pipes close when one of the 2 processes stops
but in larger applications this could lead to memory leaks. 

Still looking further into it.


-----Message d'origine-----
De : fpc-pascal-bounces at lists.freepascal.org
[mailto:fpc-pascal-bounces at lists.freepascal.org] De la part de Anton
Envoyé : dimanche 8 mai 2011 19:18
À : FPC-Pascal users discussions
Objet : RE : [fpc-pascal] Redirecting input to a child process

Ludo Brands:

> If  you  run  'more'  in  a  cmd window you'll notice that 'more' 
> echoes the input but only sends to  stdout  when  a
> return   is  entered.  I  modified  the  program  to  send
> 'Anton'#10  and the  program  reads  back  'Anton'#10 from stdout.

Thank you, Ludo, this is great!

But why doesn't the process finish? I thought that the clos- ing of the
write end of the StdIn pipe handle should cause a EOF to be 'seen' at the
read end, but this does not happen.

Maybe these's some explicit way to signal end of input?

fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org

More information about the fpc-pascal mailing list