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.


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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.