[Haskell-cafe] "piping" to system call
voigt at tcs.inf.tu-dresden.de
Tue Sep 23 09:12:18 EDT 2008
Jules Bean wrote:
> Marc Weber wrote:
>> On Tue, Sep 23, 2008 at 01:37:56PM +0200, Janis Voigtlaender wrote:
>>> assume I have a program taking input from stdin. How do I call it from
>>> Haskell while feeding to it a string as input.
>> Sure, have a look at
>> rnuInteractiveCommand does would you want
>> (in,out,err,pId) <- runInteractiveProcess "cat" ...
>> hPutStrLn "test" in
>> hClose in
>> outContents <- hGetContents out
>> print outContents
> Beware. The above code is broken.
> Whether it appears to work depends on your OS, buffering settings, and
> the size of any underlying buffers.
Thanks for the warning. I needed it only for a small scripting task, and
it seems to work well enough. Actually, I am not even interested in the
output, so I just went for waitForProcess. This comes with additional
warnings in the docs, but I did not experience any problems in my
concrete setting so far.
Dr. Janis Voigtlaender
mailto:voigt at tcs.inf.tu-dresden.de
More information about the Haskell-Cafe