Off the top of my head, I know there are:

  • pipes
  • FIFO files / named pipes
  • message queues
  • shared memory
  • semaphores
  • signals

Is that the complete list? Doing a bit of research, I think it may be, but I want to be sure.

2 Answers 2


From IPC mechanisms on Linux - Introduction:

The Linux kernel provides the following IPC mechanisms:

Anonymous Pipes
Named Pipes or FIFOs
SysV Message Queues
POSIX Message Queues
SysV Shared memory
POSIX Shared memory
SysV semaphores
POSIX semaphores
FUTEX locks
File-backed and anonymous shared memory using mmap
UNIX Domain Sockets
Netlink Sockets
Network Sockets
Inotify mechanisms
FUSE subsystem
D-Bus subsystem

I would add shared file descriptors to the list.


Do pseudo-ttys count? Those are the magic special files in /dev/pts under Linux. Older Unixes had a fixed number of pseudo-ttys as specially-named device files, I believe.

Pseudo-ttys are rather like pipes or socket pairs, but respond to different ioctl() calls.

Speaking of socket pairs, do the special file descriptors coming from a socketpair() system call count?

Also, bear in mind that there are two forms of shared memory. There's the older, more esoteric System V IPC shared memory, which isn't universally available any more, and there's using mmap() on a well-known file, with a MAP_SHARED flag.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .