shmctl(2) shmctl(2)
NAME
shmctl - shared memory control operations
SYNOPSIS
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
int shmctl (shmid, cmd, buf)
int shmid, cmd;
struct shmidds *buf;
DESCRIPTION
shmctl provides a variety of shared memory control
operations as specified by cmd. The following cmds are
available:
IPCSTAT Place the current value of each member of
the data structure associated with shmid
into the structure pointed to by buf. The
contents of this structure are defined in
intro(2). {READ}
IPCSET Set the value of the following members of
the data structure associated with shmid to
the corresponding value found in the
structure pointed to by buf:
shm_perm.uid
shm_perm.gid
shm_perm.mode /*only low 9 bits*/
This cmd can only be executed by a process
that has an effective user ID equal to
either that of super-user or to the value of
shmperm.uid in the data structure
associated with shmid.
IPCRMID Remove the shared memory identifier
specified by shmid from the system and
destroy the shared memory segment and data
structure associated with it. This cmd can
only be executed by a process that has an
effective user ID equal to either that of
super-user or to the value of shmperm.uid
in the data structure associated with shmid.
shmctl will fail if one or more of the following are
true:
[EINVAL] shmid is not a valid shared memory
identifier.
Page 1 (last mod. 1/14/87)
shmctl(2) shmctl(2)
[EINVAL] cmd is not a valid command.
[EACCES] cmd is equal to IPCSTAT and {READ}
operation permission is denied to the
calling process (see intro(2)).
[EPERM] cmd is equal to IPCRMID or IPCSET and
the effective user ID of the calling
process is not equal to that of super-
user and it is not equal to the value of
shmperm.uid in the data structure
associated with shmid.
[EFAULT] buf points to an illegal address.
RETURN VALUE
Upon successful completion, a value of 0 is returned.
Otherwise, a value of -1 is returned and errno is set to
indicate the error.
SEE ALSO
intro(2), shmget(2), shmop(2).
Page 2 (last mod. 1/14/87)