The shmget() function returns the shared memory identifier associated with key.
A shared memory identifier and associated data structure and shared memory segment of at least size bytes (see intro(2)) are created for key
if one of the following are true:
- The key argument is equal to IPC_PRIVATE.
- The key argument does not already have a shared memory identifier associated with it, and (shmflg&IPC_CREAT) is true.
Upon creation, the data structure associated with the new shared memory identifier is initialized as follows:
- The values of shm_perm.cuid, shm_perm.uid, shm_perm.cgid, and shm_perm.gid are set equal to the effective user ID and effective group ID, respectively, of the calling process.
- The access permission bits of shm_perm.mode are set equal to the access permission bits of shmflg. shm_segsz is set equal to the value of size.
- The values of shm_lpid, shm_nattch shm_atime, and shm_dtime are set equal to 0.
- The shm_ctime is set equal to the current time.
Shared memory segments must be explicitly removed after the last reference to them has been removed.