[Haskell-beginners] Named Pipes Et Cetera
Patrick LeBoutillier
patrick.leboutillier at gmail.com
Tue Nov 23 09:09:57 EST 2010
Matthew,
Does it return immediately when you start it or only when you try to
write to the pipe with some client?
Here's what I get on my Linux box:
$ rm /tmp/dld.fifo && ./pipe &
[1] 8603
$ echo -e "1\n2\n3" > /tmp/dld.fifo
1
2
3
pipe: /tmp/dld.fifo: hGetLine: end of file
Patrick
On Tue, Nov 23, 2010 at 7:55 AM, matthew coolbeth
<mac01021 at engr.uconn.edu> wrote:
> Hello, all.
>
> Three questions:
>
> 1> What, if anything, can I do in a Haskell program to do blocking
> reads from a Linux FIFO? For the curious, there is a small program
> below that doesn't block, but immediately terminates because of an EOF
>
> 2> How could I have found the answer to this question on my own? (The
> documentation that Google found for me was not completely adequate)
>
> 3> Is this sort of question generally regarded as too unixy or not
> haskelly enough to be appropriate for this mailing list?
>
> Thanks.
>
> --BEGIN PROGRAM--
> module Main () where
>
> import Control.Monad
> import System.IO
> import System.Posix.Files
>
> pipeString = "/tmp/dld.fifo"
>
> main :: IO ()
> main = do
> createNamedPipe pipeString $ unionFileModes ownerReadMode ownerWriteMode
> pipe <- openFile pipeString ReadMode
> forever (hGetLine pipe >>= putStrLn)
>
>
> --
> mac
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://www.haskell.org/mailman/listinfo/beginners
>
--
=====================
Patrick LeBoutillier
Rosemère, Québec, Canada
More information about the Beginners
mailing list