shmdt(2)shmdt(2)NAMEshmdt - Detach a shared memory region
const void *addr );
Application developers may want to specify an #include statement for
<sys/types.h> and <sys/ipc.h> before the one for <sys/shm.h> if pro‐
grams are being developed for multiple platforms. The additional
#include statements are not required on Tru64 UNIX systems or by ISO or
XSH standards, but may be on other vendors' systems that conform to
Interfaces documented on this reference page conform to industry stan‐
dards as follows:
shmdt(): XSH4.0, XSH4.2, XSH5.0
Refer to the standards(5) reference page for more information about
industry standards and associated tags.
Specifies the starting virtual address for the shared memory region to
be detached. This is the address returned by a previous shmat() call.
The shmdt() function detaches the shared memory region at the address
specified by the addr parameter from the address space of the calling
process. Other instances of the region attached at other addresses are
The librt library contains alternative interfaces for interprocess com‐
munication. The names of these routines adhere to the format shm_* and
their reference pages are listed in SEE ALSO.
Upon successful completion, the shmdt() function decrements the value
of shm_nattach in the data structure associated with the shared memory
ID of the attached shared memory segment and returns 0 (zero). Upon
failure, the shared memory segment is not detached, -1 is returned, and
errno is set to indicate the error.
The shmdt() function sets errno to the specified values for the follow‐
ing conditions: The addr parameter does not specify the starting
address of a shared memory region.
Functions: shmat(2), shmctl(2), shmget(2), shm_open(3), shm_unlink(3)
Data structures: shmid_ds(4)