Off the top of my head, I know there are:
- FIFO files / named pipes
- message queues
- shared memory
Is that the complete list? Doing a bit of research, I think it may be, but I want to be sure.
The Linux kernel provides the following IPC mechanisms:
Signals 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
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