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

# svipc(7)

System V interprocess communication mechanisms

Part of [sysvipc(7)](/sysvipc/7.md).

## 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)](/mq_overview/7.md).

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

- [**msgget**(2)](/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)](/msgsnd/2.md)

  Add a message to a queue.

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

  Remove a message from a queue.

- [**msgctl**(2)](/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)](/sem_overview/7.md).

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

- [**semget**(2)](/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)](/semop/2.md)

  Perform operations on the semaphores in a set.

- [**semctl**(2)](/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)](/shm_overview/7.md).

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

- [**shmget**(2)](/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)](/shmat/2.md)

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

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

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

- [**shmctl**(2)](/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)](/ipc_namespaces/7.md).

## SEE ALSO

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