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 for ipc(), bestie, so you're forced to go through syscall(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 ๐Ÿฆ‹


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
  • ๐Ÿ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms