# phpman > man > SHM_OVERVIEW(7)

[SHM_OVERVIEW(7)](https://www.chedong.com/phpMan.php/man/SHMOVERVIEW/7/markdown)                       Linux Programmer's Manual                      [SHM_OVERVIEW(7)](https://www.chedong.com/phpMan.php/man/SHMOVERVIEW/7/markdown)



## NAME
       shm_overview - overview of POSIX shared memory

## DESCRIPTION
       The  POSIX  shared memory API allows processes to communicate information by sharing a region
       of memory.

       The interfaces employed in the API are:

       **shm**___**[open**(3)](https://www.chedong.com/phpMan.php/man/open/3/markdown)    Create and open a new object, or open an existing object.  This  is  analogous
                      to  [**open**(2)](https://www.chedong.com/phpMan.php/man/open/2/markdown).   The  call returns a file descriptor for use by the other inter‐
                      faces listed below.

       [**ftruncate**(2)](https://www.chedong.com/phpMan.php/man/ftruncate/2/markdown)   Set the size of the shared memory object.  (A newly created shared memory  ob‐
                      ject has a length of zero.)

       [**mmap**(2)](https://www.chedong.com/phpMan.php/man/mmap/2/markdown)        Map  the  shared  memory  object into the virtual address space of the calling
                      process.

       [**munmap**(2)](https://www.chedong.com/phpMan.php/man/munmap/2/markdown)      Unmap the shared memory object from the virtual address space of  the  calling
                      process.

       **shm**___**[unlink**(3)](https://www.chedong.com/phpMan.php/man/unlink/3/markdown)  Remove a shared memory object name.

       [**close**(2)](https://www.chedong.com/phpMan.php/man/close/2/markdown)       Close  the  file  descriptor  allocated  by  **shm**___**[open**(3)](https://www.chedong.com/phpMan.php/man/open/3/markdown)  when it is no longer
                      needed.

       [**fstat**(2)](https://www.chedong.com/phpMan.php/man/fstat/2/markdown)       Obtain a _stat_ structure that describes the shared memory  object.   Among  the
                      information returned by this call are the object's size (_st_size_), permissions
                      (_st_mode_), owner (_st_uid_), and group (_st_gid_).

       [**fchown**(2)](https://www.chedong.com/phpMan.php/man/fchown/2/markdown)      To change the ownership of a shared memory object.

       [**fchmod**(2)](https://www.chedong.com/phpMan.php/man/fchmod/2/markdown)      To change the permissions of a shared memory object.

### Versions
       POSIX shared memory is supported since Linux 2.4 and glibc 2.2.

### 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 **shm**___**[unlink**(3)](https://www.chedong.com/phpMan.php/man/unlink/3/markdown)

### Linking
       Programs using the POSIX shared memory API must be compiled with _cc_ _-lrt_ to link against  the
       real-time library, _librt_.

### Accessing shared memory objects via the filesystem
       On  Linux,  shared  memory  objects  are created in a ([_tmpfs_(5)](https://www.chedong.com/phpMan.php/man/tmpfs/5/markdown)) virtual filesystem, normally
       mounted under _/dev/shm_.  Since kernel 2.6.19, Linux supports the use of access control  lists
       (ACLs) to control the permissions of objects in the virtual filesystem.

## NOTES
       Typically,  processes must synchronize their access to a shared memory object, using, for ex‐
       ample, POSIX semaphores.

       System V shared memory ([**shmget**(2)](https://www.chedong.com/phpMan.php/man/shmget/2/markdown), [**shmop**(2)](https://www.chedong.com/phpMan.php/man/shmop/2/markdown), 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.

## SEE ALSO
       [**fchmod**(2)](https://www.chedong.com/phpMan.php/man/fchmod/2/markdown),  [**fchown**(2)](https://www.chedong.com/phpMan.php/man/fchown/2/markdown),  [**fstat**(2)](https://www.chedong.com/phpMan.php/man/fstat/2/markdown),  [**ftruncate**(2)](https://www.chedong.com/phpMan.php/man/ftruncate/2/markdown),  [**mmap**(2)](https://www.chedong.com/phpMan.php/man/mmap/2/markdown), [**mprotect**(2)](https://www.chedong.com/phpMan.php/man/mprotect/2/markdown), [**munmap**(2)](https://www.chedong.com/phpMan.php/man/munmap/2/markdown), [**shmget**(2)](https://www.chedong.com/phpMan.php/man/shmget/2/markdown),
       [**shmop**(2)](https://www.chedong.com/phpMan.php/man/shmop/2/markdown), **shm**___**[open**(3)](https://www.chedong.com/phpMan.php/man/open/3/markdown), **shm**___**[unlink**(3)](https://www.chedong.com/phpMan.php/man/unlink/3/markdown), **sem**___**[overview**(7)](https://www.chedong.com/phpMan.php/man/overview/7/markdown)

## COLOPHON
       This page is part of release 5.10 of the Linux  _man-pages_  project.   A  description  of  the
       project,  information about reporting bugs, and the latest version of this page, can be found
       at <https://www.kernel.org/doc/man-pages/>.



Linux                                        2020-08-13                              [SHM_OVERVIEW(7)](https://www.chedong.com/phpMan.php/man/SHMOVERVIEW/7/markdown)
