The classic guide to interprocess communication on Unix, rebuilt as interactive lessons. From fork() to sockets, with live simulations at every step.
Creating child processes, zombie prevention, wait(), and the parent-child relationship.
Catching and sending signals, sigaction(), signal handlers, and async-safe functions.
Anonymous pipes, pipe() + fork(), dup() for stdin/stdout redirection, implementing "ls | wc".
Named pipes on disk, producer-consumer patterns, O_NDELAY, and multi-writer scenarios.
Advisory locks with fcntl(), read vs write locks, struct flock, and deadlock avoidance.
System V semaphores, semget/semop/semctl, the "fatal flaw" race condition, and SEM_UNDO.
System V message queues, ftok() keys, typed messages, priority retrieval, kirk & spock.
shmget/shmat/shmdt, direct pointer access, concurrency dangers, and the ipcs command.
mmap() and munmap(), mapping files to pointers, page alignment, and MAP_SHARED vs MAP_PRIVATE.