| .\" Copyright 2020 Michael Kerrisk <mtk.manpages@gmail.com> |
| .\" |
| .\" %%%LICENSE_START(VERBATIM) |
| .\" Permission is granted to make and distribute verbatim copies of this |
| .\" manual provided the copyright notice and this permission notice are |
| .\" preserved on all copies. |
| .\" |
| .\" Permission is granted to copy and distribute modified versions of this |
| .\" manual under the conditions for verbatim copying, provided that the |
| .\" entire resulting derived work is distributed under the terms of a |
| .\" permission notice identical to this one. |
| .\" |
| .\" Since the Linux kernel and libraries are constantly changing, this |
| .\" manual page may be incorrect or out-of-date. The author(s) assume no |
| .\" responsibility for errors or omissions, or for damages resulting from |
| .\" the use of the information contained herein. The author(s) may not |
| .\" have taken the same level of care in the production of this manual, |
| .\" which is licensed free of charge, as they might when working |
| .\" professionally. |
| .\" |
| .\" Formatted or processed versions of this manual, if unaccompanied by |
| .\" the source, must acknowledge the copyright and authors of this work. |
| .\" %%%LICENSE_END |
| .\" |
| .TH SVIPC 7 2020-04-11 "Linux" "Linux Programmer's Manual" |
| .SH NAME |
| sysvipc \- System V interprocess communication mechanisms |
| .SH 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. |
| .\" |
| .SS Message queues |
| System V message queues allow data to be exchanged in units called messages. |
| Each messages can have an associated priority, |
| POSIX message queues provide an alternative API for achieving the same result; |
| see |
| .BR mq_overview (7). |
| .PP |
| The System V message queue API consists of the following system calls: |
| .TP |
| .BR msgget (2) |
| 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. |
| .TP |
| .BR msgsnd (2) |
| Add a message to a queue. |
| .TP |
| .BR msgrcv (2) |
| Remove a message from a queue. |
| .TP |
| .BR msgctl (2) |
| Perform various control operations on a queue, including deletion. |
| .\" |
| .SS 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 |
| .BR sem_overview (7). |
| .PP |
| The System V semaphore API consists of the following system calls: |
| .TP |
| .BR semget (2) |
| Create a new set or obtain the ID of an existing set. |
| This call returns an identifier that is used in the remaining APIs. |
| .TP |
| .BR semop (2) |
| Perform operations on the semaphores in a set. |
| .TP |
| .BR semctl (2) |
| Perform various control operations on a set, including deletion. |
| .\" |
| .SS 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 |
| .BR shm_overview (7). |
| .PP |
| The System V shared memory API consists of the following system calls: |
| .TP |
| .BR shmget (2) |
| Create a new segment or obtain the ID of an existing segment. |
| This call returns an identifier that is used in the remaining APIs. |
| .TP |
| .BR shmat (2) |
| Attach an existing shared memory object into the calling process's |
| address space. |
| .TP |
| .BR shmdt (2) |
| Detach a segment from the calling process's address space. |
| .TP |
| .BR shmctl (2) |
| Perform various control operations on a segment, including deletion. |
| .\" |
| .SS IPC namespaces |
| For a discussion of the interaction of System V IPC objects and |
| IPC namespaces, see |
| .BR ipc_namespaces (7). |
| .SH SEE ALSO |
| .BR ipcmk (1), |
| .BR ipcrm (1), |
| .BR ipcs (1), |
| .BR lsipc (1), |
| .BR ipc (2), |
| .BR msgctl (2), |
| .BR msgget (2), |
| .BR msgrcv (2), |
| .BR msgsnd (2), |
| .BR semctl (2), |
| .BR semget (2), |
| .BR semop (2), |
| .BR shmat (2), |
| .BR shmctl (2), |
| .BR shmdt (2), |
| .BR shmget (2), |
| .BR ftok (3), |
| .BR ipc_namespaces (7) |