# shm_overview - overview of POSIX shared memory - man(7) - [phpMan]

[_shm_overview_(7)](https://www.chedong.com/phpMan.php/man/shmoverview/7/markdown)                   Miscellaneous Information 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/shmopen/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/shmunlink/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/shmopen/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/shmunlink/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 Linux 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),  [**memfd_create**(2)](https://www.chedong.com/phpMan.php/man/memfdcreate/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),  **mun‐**
       [**map**(2)](https://www.chedong.com/phpMan.php/man/map/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/shmopen/3/markdown), [**shm_unlink**(3)](https://www.chedong.com/phpMan.php/man/shmunlink/3/markdown), [**sem_overview**(7)](https://www.chedong.com/phpMan.php/man/semoverview/7/markdown)

Linux man-pages 6.7                          2023-10-31                              [_shm_overview_(7)](https://www.chedong.com/phpMan.php/man/shmoverview/7/markdown)
