[Haskell-beginners] Named Pipes Et Cetera

Patrick LeBoutillier patrick.leboutillier at gmail.com
Tue Nov 23 10:36:40 EST 2010


On Tue, Nov 23, 2010 at 9:13 AM, matthew coolbeth
<mac01021 at engr.uconn.edu> wrote:
> That's interesting.  This was using my source code?

Yes, as is. I compiled it with "ghc --make pipe.hs".

I'm running Fedora 10 x64 with:
$ ghc --version
The Glorious Glasgow Haskell Compilation System, version 6.10.1

Patrick

> On mine (also a Linux box), it exited immediately, giving me no
> opportunity to write to the pipe.
>
> On 2010-11-23, Patrick LeBoutillier <patrick.leboutillier at gmail.com> wrote:
>> 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
>>
>
>
> --
> mac
>



-- 
=====================
Patrick LeBoutillier
Rosemère, Québec, Canada


More information about the Beginners mailing list