table of contents
|SHMAT(2)||System Calls Manual||SHMAT(2)|
NAME¶shmat, shmdt — attach or detach shared memory
LIBRARY¶Standard C Library (libc, -lc)
#include <sys/shm.h> void *
shmat(int shmid, const void *addr, int flag); int
shmdt(const void *addr);
DESCRIPTION¶The shmat() system call attaches the shared memory segment identified by shmid to the calling process's address space. The address where the segment is attached is determined as follows:
- If addr is 0, the segment is attached at an address selected by the kernel.
- If addr is nonzero and SHM_RND is not specified in flag, the segment is attached the specified address.
- If addr is specified and SHM_RND is specified, addr is rounded down to the nearest multiple of SHMLBA.
RETURN VALUES¶Upon success, shmat() returns the address where the segment is attached; otherwise, -1 is returned and errno is set to indicate the error.
The shmdt() function returns the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the error.
ERRORS¶The shmat() system call will fail if:
- No shared memory segment was found corresponding to shmid.
- The addr argument was not an acceptable address.
- The addr argument does not point to a shared memory segment.
SEE ALSO¶shmctl(2), shmget(2)
|August 2, 1995||Debian|