Re: bidirectional named pipe?

David L. Nicol (david@kasey.umkc.edu)
Wed, 07 Feb 2001 17:09:40 -0600


Alan Cox wrote:
>
> > I'm porting some software to Linux that requires use of a bidirectional,
> > named pipe. The architecture is as follows: A server creates a named pipe
>
> Pipes are not bidirectional in Linux. We follow traditional non stream
> behaviour
>
> > /dev/spx". I experiemented with socket-based pipes under Linux, but I
> > couldn't gain access to them by open()ing the name. Is there help? I
>
> AF_UNIX sockets are bidirectional but like all sockets use bind() and
> connect().

How hard would it be to add? The limitation on fifos that you get the same
one every time you open it makes some things tricky -- the server has to
move the fifo and mkfifo a new one to replace its data with something else,
for instance, which is not atomic.

I don't understand, in the original problem, how the server opens
the named bipipe differently from the servers, to be on one end rather than
the other.

A way to map a file name to a socket pair would be nice, the first to open
it could get one end of it and everyone else would get the other end, or there
would be a switch.

You could patch the file system code, I wonder how deep the changes would have
to be, if you did it in terms of lots of fifos.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/