The
shmat ();
system call
attaches the shared memory segment identified by
Fa shmid
to the calling process's address space.
The address where the segment
is attached is determined as follows:
If
Fa addr
is 0, the segment is attached at an address selected by the
kernel.
If
Fa addr
is nonzero and SHM_RND is not specified in
Fa flag ,
the segment is attached the specified address.
If
Fa addr
is specified and SHM_RND is specified,
Fa addr
is rounded down to the nearest multiple of SHMLBA.
The
shmdt ();
system call
detaches the shared memory segment at the address specified by
Fa addr
from the calling process's address space.
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.
Rv -std shmdt
ERRORS
The
shmat ();
system call
will fail if:
Bq Er EINVAL
No shared memory segment was found corresponding to
Fa shmid .
Bq Er EINVAL
The
Fa addr
argument
was not an acceptable address.
The
shmdt ();
system call
will fail if:
Bq Er EINVAL
The
Fa addr
argument
does not point to a shared memory segment.