aboutsummaryrefslogtreecommitdiffstats
path: root/man/man7/shm_overview.7
diff options
context:
space:
mode:
authorAlejandro Colomar <alx@kernel.org>2024-04-26 15:06:49 +0200
committerAlejandro Colomar <alx@kernel.org>2024-05-02 01:24:19 +0200
commitdcde2f70372b49ec43efc5db864c9ff585d0a2dd (patch)
tree78b9b7425130e4a5858e4c01a524d802423879ed /man/man7/shm_overview.7
parent12aca537ce78a41bbcdaf485209691e10f8002d7 (diff)
downloadman-pages-dcde2f70372b49ec43efc5db864c9ff585d0a2dd.tar.gz
man/, share/mk/: Move man*/ to man/
This is a scripted change: $ mkdir man/; $ mv man* man/; $ ln -st . man/man*; $ find share/mk/ -type f \ | xargs grep -l '^MANDIR *:=' \ | xargs sed -i '/^MANDIR *:=/s,$,/man,'; $ find share/mk/dist/ -type f \ | xargs grep -l man \ | xargs sed -i 's,man%,man/%,g'; Link: <https://lore.kernel.org/linux-man/YxcV4h+Xn7cd6+q2@pevik/T/> Cc: Petr Vorel <pvorel@suse.cz> Cc: Jakub Wilk <jwilk@jwilk.net> Cc: Stefan Puiu <stefan.puiu@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
Diffstat (limited to 'man/man7/shm_overview.7')
-rw-r--r--man/man7/shm_overview.7104
1 files changed, 104 insertions, 0 deletions
diff --git a/man/man7/shm_overview.7 b/man/man7/shm_overview.7
new file mode 100644
index 0000000000..85fbce2a00
--- /dev/null
+++ b/man/man7/shm_overview.7
@@ -0,0 +1,104 @@
+.\" Copyright (C) 2008, Linux Foundation, written by Michael Kerrisk
+.\" <mtk.manpages@gmail.com>
+.\"
+.\" SPDX-License-Identifier: Linux-man-pages-copyleft
+.\"
+.TH shm_overview 7 (date) "Linux man-pages (unreleased)"
+.SH NAME
+shm_overview \- overview of POSIX shared memory
+.SH DESCRIPTION
+The POSIX shared memory API allows processes to communicate information
+by sharing a region of memory.
+.P
+The interfaces employed in the API are:
+.TP 15
+.BR shm_open (3)
+Create and open a new object, or open an existing object.
+This is analogous to
+.BR open (2).
+The call returns a file descriptor for use by the other
+interfaces listed below.
+.TP
+.BR ftruncate (2)
+Set the size of the shared memory object.
+(A newly created shared memory object has a length of zero.)
+.TP
+.BR mmap (2)
+Map the shared memory object into the virtual address space
+of the calling process.
+.TP
+.BR munmap (2)
+Unmap the shared memory object from the virtual address space
+of the calling process.
+.TP
+.BR shm_unlink (3)
+Remove a shared memory object name.
+.TP
+.BR close (2)
+Close the file descriptor allocated by
+.BR shm_open (3)
+when it is no longer needed.
+.TP
+.BR fstat (2)
+Obtain a
+.I stat
+structure that describes the shared memory object.
+Among the information returned by this call are the object's
+size
+.RI ( st_size ),
+permissions
+.RI ( st_mode ),
+owner
+.RI ( st_uid ),
+and group
+.RI ( st_gid ).
+.TP
+.BR fchown (2)
+To change the ownership of a shared memory object.
+.TP
+.BR fchmod (2)
+To change the permissions of a shared memory object.
+.SS Versions
+POSIX shared memory is supported since Linux 2.4 and glibc 2.2.
+.SS Persistence
+POSIX shared memory objects have kernel persistence:
+a shared memory object will exist until the system is shut down,
+or until all processes have unmapped the object and it has been deleted with
+.BR shm_unlink (3)
+.SS Linking
+Programs using the POSIX shared memory API must be compiled with
+.I cc \-lrt
+to link against the real-time library,
+.IR librt .
+.SS Accessing shared memory objects via the filesystem
+On Linux, shared memory objects are created in a
+.RB ( tmpfs (5))
+virtual filesystem, normally mounted under
+.IR /dev/shm .
+Since Linux 2.6.19, Linux supports the use of access control lists (ACLs)
+to control the permissions of objects in the virtual filesystem.
+.SH NOTES
+Typically, processes must synchronize their access to a shared
+memory object, using, for example, POSIX semaphores.
+.P
+System V shared memory
+.RB ( shmget (2),
+.BR shmop (2),
+etc.) is an older shared memory API.
+POSIX shared memory provides a simpler, and better designed interface;
+on the other hand POSIX shared memory is somewhat less widely available
+(especially on older systems) than System V shared memory.
+.SH SEE ALSO
+.BR fchmod (2),
+.BR fchown (2),
+.BR fstat (2),
+.BR ftruncate (2),
+.BR memfd_create (2),
+.BR mmap (2),
+.BR mprotect (2),
+.BR munmap (2),
+.BR shmget (2),
+.BR shmop (2),
+.BR shm_open (3),
+.BR shm_unlink (3),
+.BR sem_overview (7)