Named pipes or UNIX domain sockets?

Sean Casey sean at ms.uky.edu
Sun Jun 16 08:50:20 AEST 1991


Okay so I'm writing an application where two dissimilar processes need
to shove pieces of data at each other in a non-blocking fashion.
Process A talks to processes B, C, and D in a star fashion. Any of
these processes can be restarted if necessary.

I could do one of the following:

- FIFOs, which are likely to be the most efficient implementation, but
  which might be less portable than sockets. But there's POSIX...

- UNIX domain sockets, which are (IMHO) a little funkier to set up.
  But I'm comfy with sockets so that's no real trouble.

One thing I noticed is that when a program opens a named pipe, and
there's nothing else that has it open, then it just blocks
indefinitely, while a UNIX domain socket will get the connection
refused if there's nothing to listen.

Anyone care to share experiences with the relative merits of the two?

Sean
-- 
** Sean Casey  <sean at s.ms.uky.edu>



More information about the Comp.unix.internals mailing list