[Haskell-cafe] I/O system brokenness with named pipes

Brandon S. Allbery KF8NH allbery at ece.cmu.edu
Fri Apr 11 09:16:55 EDT 2008


On Apr 11, 2008, at 9:08 , John Goerzen wrote:
> On Fri April 11 2008 8:02:07 am Brandon S. Allbery KF8NH wrote:
>> On Apr 11, 2008, at 8:12 , John Goerzen wrote:
>>> OK, I have referred to fifo(7) regarding this point.  It seems I
>>> may need a
>>> loop trying over and over to open the FIFO in write mode.  It also
>>> appears
>>> that ReadWriteMode appearing to work is Linux-specific, and this
>>> behavior is
>>> left undefined in POSIX.
>>
>> Undefined in POSIX, normal for Unix (and Linux originally promised
>> only POSIX semantics but was rejiggered some years back to behave
>> like Unix in this regard, because Unix programs rely on these
>> semantics and therefore failed on Linux).
>
> Hrm, can you define what OSs you mean when you say "Unix"?

SunOS/Solaris, and in general the descendants of 4.xBSD and AT&T  
System III/V.  Unless this is a different issue from the usual FIFO  
only-works-as-expected-if-both-ends-always-open problem.  That is,  
unless the first opener opens read/write, neither a prospective  
writer nor a prospective reader will be capable of opening it at all;  
depending on OS you will get ENXIO or EPIPE or (in some rare  
implementations) EAGAIN.

-- 
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