ipc(2)
๐ ipc(2) โ System Calls Manual energy โจ
okay bestie, pull up a chair, we're talking about ipc(2) โ the System V IPC system calls, straight out of the System Calls Manual. yes the whole manual. she's iconic, she's lowkey ancient, and she's the backstage pass to how messages, semaphores and shared memory actually get summoned in the kernel. let's go ๐ซถ
๐ธ NAME ๐ธ
ipc โ System V IPC system calls ๐
๐ LIBRARY ๐
Standard C library (libc, -lc)
โจ SYNOPSIS โจ
#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 foripc(), bestie, so you're forced to go throughsyscall(2). there is no shortcut. no vibes-only path. it's giving "do it yourself" ๐ญ
๐ DESCRIPTION ๐
ipc() is the common kernel entry point for all the System V IPC calls โ that's messages, semaphores, and shared memory, all three girlies sharing one door ๐ชโจ
call is the thing that decides which IPC function gets invoked. everything else you hand over just gets passed straight through to whatever call you picked. no extra processing, no side quests, just vibes and forwarding ๐ฆ
now here's the real tea: user-space programs should be calling the appropriate functions by their usual names. like, the normal ones. the ones with actual wrappers. ipc() is not your main character โ she's the plumbing. only standard library implementors and kernel hackers need to know about ipc() at all. so if that's not you, you can literally close this tab ๐
๐ VERSIONS ๐
on some architectures โ for example x86-64 and ARM โ there is no ipc() system call at all ๐ instead, msgctl(2), semctl(2), shmctl(2), and so on really are implemented as separate system calls. like, genuinely separate. not a facade. so on those platforms the "one entry point" thing is justโฆ not a thing.
๐ STANDARDS ๐
Linux. that's it, that's the standard. periodt ๐
๐ฆ 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)
and that's the whole page, bestie ๐ this one came to you from Linux man-pages 6.20, dated 2026-02-08 โ love her, respect her, she's been carrying the kernel docs on her back fr fr โจ go call your IPC functions by their normal names and stay hydrated ๐
๐ฆ where this page comes from
- arch rolling: man-pages 6.20-1 ยท BSD-2-Clause AND BSD-3-Clause AND BSD-4.3TAHOE AND BSD-4-Clause-UC AND GPL-1.0-or-later AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-or-later AND LGPL-3.0-linking-exception AND LGPL-3.0-or-later AND LicenseRef-Public-Domain AND LicenseRef-UltraPermissive AND Linux-man-pages-1-para AND Linux-man-pages-copyleft AND Linux-man-pages-copyleft-2-para AND Linux-man-pages-copyleft-var AND MIT AND Spencer-94
- nixpkgs unstable: man-pages 6.20
- ๐ the page's license: GPL-2.0-or-later
- Copyright 1995, Michael Chastain <mec@shell.portal.com>
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms