[Haskell-cafe] File handles and pipes
Brandon S. Allbery KF8NH
allbery at ece.cmu.edu
Sun Oct 19 01:44:00 EDT 2008
On 2008 Oct 19, at 1:37, Stephen Hicks wrote:
> I'm trying to understand how to get pipes working in Haskell, in
> particular with the revamped System.Process (though I've tried similar
> experiments with System.Posix.IO and Control.Concurrent).
> Specifically I'm trying to concatenate the output of two system calls
> into the input of a third. The following code does not get the job
> done:
Pipes are perhaps a bit misnamed: if you want to combine the output
of two pipes and funnel it into a third you can't simply "plumb them
together", you need to provide code which reads from the output pipes
and writes into the input pipe. If you don't care about order, forkIO
a thread for each output pipe which reads from the output pipe it's
passed and writes to the input pipe. If order is significant, use
mapM/forM to run the output-to-input code on each handle in turn.
--
brandon s. allbery [solaris,freebsd,perl,pugs,haskell] allbery at kf8nh.com
system administrator [openafs,heimdal,too many hats] allbery at ece.cmu.edu
electrical and computer engineering, carnegie mellon university KF8NH
More information about the Haskell-Cafe
mailing list