---
name: "sysvipc"
section: "7"
platform: "linux"
package: "man-pages"
version: "6.19-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://carta.tech/man/sysvipc"
---

# sysvipc(7)

System V interprocess communication mechanisms

## NAME

sysvipc - System V interprocess communication mechanisms

## DESCRIPTION

System V IPC is the name given to three interprocess communication mechanisms that are widely available on UNIX systems: message queues, semaphore, and shared memory.

### Message queues

System V message queues allow data to be exchanged in units called messages. Each message can have an associated priority. POSIX message queues provide an alternative API for achieving the same result; see [**mq\_overview**(7)](/man/mq_overview/7.md).

The System V message queue API consists of the following system calls:

- [**msgget**(2)](/man/msgget/2.md)

  Create a new message queue or obtain the ID of an existing message queue. This call returns an identifier that is used in the remaining APIs.

- [**msgsnd**(2)](/man/msgsnd/2.md)

  Add a message to a queue.

- [**msgrcv**(2)](/man/msgrcv/2.md)

  Remove a message from a queue.

- [**msgctl**(2)](/man/msgctl/2.md)

  Perform various control operations on a queue, including deletion.

### Semaphore sets

System V semaphores allow processes to synchronize their actions. System V semaphores are allocated in groups called sets; each semaphore in a set is a counting semaphore. POSIX semaphores provide an alternative API for achieving the same result; see [**sem\_overview**(7)](/man/sem_overview/7.md).

The System V semaphore API consists of the following system calls:

- [**semget**(2)](/man/semget/2.md)

  Create a new set or obtain the ID of an existing set. This call returns an identifier that is used in the remaining APIs.

- [**semop**(2)](/man/semop/2.md)

  Perform operations on the semaphores in a set.

- [**semctl**(2)](/man/semctl/2.md)

  Perform various control operations on a set, including deletion.

### Shared memory segments

System V shared memory allows processes to share a region a memory (a "segment"). POSIX shared memory is an alternative API for achieving the same result; see [**shm\_overview**(7)](/man/shm_overview/7.md).

The System V shared memory API consists of the following system calls:

- [**shmget**(2)](/man/shmget/2.md)

  Create a new segment or obtain the ID of an existing segment. This call returns an identifier that is used in the remaining APIs.

- [**shmat**(2)](/man/shmat/2.md)

  Attach an existing shared memory object into the calling process's address space.

- [**shmdt**(2)](/man/shmdt/2.md)

  Detach a segment from the calling process's address space.

- [**shmctl**(2)](/man/shmctl/2.md)

  Perform various control operations on a segment, including deletion.

### IPC namespaces

For a discussion of the interaction of System V IPC objects and IPC namespaces, see [**ipc\_namespaces**(7)](/man/ipc_namespaces/7.md).

## SEE ALSO

[**ipcmk**(1)](/man/ipcmk/1.md), [**ipcrm**(1)](/man/ipcrm/1.md), [**ipcs**(1)](/man/ipcs/1.md), [**lsipc**(1)](/man/lsipc/1.md), [**ipc**(2)](/man/ipc/2.md), [**msgctl**(2)](/man/msgctl/2.md), [**msgget**(2)](/man/msgget/2.md), [**msgrcv**(2)](/man/msgrcv/2.md), [**msgsnd**(2)](/man/msgsnd/2.md), [**semctl**(2)](/man/semctl/2.md), [**semget**(2)](/man/semget/2.md), [**semop**(2)](/man/semop/2.md), [**shmat**(2)](/man/shmat/2.md), [**shmctl**(2)](/man/shmctl/2.md), [**shmdt**(2)](/man/shmdt/2.md), [**shmget**(2)](/man/shmget/2.md), [**ftok**(3)](/man/ftok/3.md), [**ipc\_namespaces**(7)](/man/ipc_namespaces/7.md)
