ipc - Man Page

System V IPC system calls


Standard C library (libc, -lc)


#include <linux/ipc.h>        /* Definition of needed constants */
#include <sys/syscall.h>      /* Definition of SYS_* constants */
#include <unistd.h>

int syscall(SYS_ipc, unsigned int call, int first,
            unsigned long second, unsigned long third, void *ptr,
            long fifth);

Note: glibc provides no wrapper for ipc(), necessitating the use of syscall(2).


ipc() is a common kernel entry point for the System V IPC calls for messages, semaphores, and shared memory. call determines which IPC function to invoke; the other arguments are passed through to the appropriate call.

User-space programs should call the appropriate functions by their usual names. Only standard library implementors and kernel hackers need to know about ipc().


ipc() is Linux-specific, and should not be used in programs intended to be portable.


On some architectures—for example x86-64 and ARM—there is no ipc() system call; instead, msgctl(2), semctl(2), shmctl(2), and so on really are implemented as separate system calls.

See Also

msgctl(2), msgget(2), msgrcv(2), msgsnd(2), semctl(2), semget(2), semop(2), semtimedop(2), shmat(2), shmctl(2), shmdt(2), shmget(2), sysvipc(7)

Referenced By

dosemu.bin(1), seccomp_syscall_resolve_name(3), semctl(2), syscalls(2), sysvipc(7), unimplemented(2).

2022-10-09 Linux man-pages 6.01