pipe through external process?

Jean-Baptiste Robertson jbr@gmx.fr
Tue, 17 Jul 2001 02:08:22 +0100


The POSIX functions you may want to try are open2 and open3.
Much trouble come from the Unix buffering : as you can't force
autoflushed output from the command, you'll simply have a deadlock 99%
of the time.
A solution (used in scsh, I think) is to send the stdout in a file and
to read the file. 


John Meacham wrote:
> I am trying to implement a function which takes a string, pipes it
> through an external command and returns the stdout of teh command
> utilizing the Posix library and ghc.
> first of all, if someone has this handy code tidbit already written then
> feel free to send it to me. the other thing is that I cannot figure out
> how to get data into and out of the process. I can create a pipe which
> returns a pair of Fd's but then i cannot pass these into runProcess
> since it expects handles. also I have no ability to wait for the
> termination of the command that runProcess starts...
> it is always possible i am just overlooking a few key functions in Posix...
>         John
> --
> ---------------------------------------------------------------------------
> John Meacham - California Institute of Technology, Alum. - john@repetae.net
> ---------------------------------------------------------------------------
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe@haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe

Jean-Baptiste Robertson <jbr@gmx.fr>