shmctl(2)shmctl(2)NAMEshmctl() - shared memory control operations
SYNOPSISDESCRIPTION
The system call provides a variety of shared memory control operations
as specified by the cmd argument. cmd can have the following values:
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 glos‐
sary(9).
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
a user having appropriate privileges or to the
value of either or in the data structure associ‐
ated with shmid.
This cmd cannot be executed on a shared memory
segment that has been created with relaxed isola‐
tion.
Remove the shared memory identifier specified by
shmid from the system and destroy the shared mem‐
ory segment and data structure associated with
it. If the segment is attached to one or more
processes, then the segment key is changed to and
the segment is marked removed. The segment dis‐
appears when the last attached process detaches
it. This cmd can only be executed by a process
that has an effective user ID equal to either
that of a user with appropriate privileges or to
the value of either or in the data structure
associated with shmid.
Lock the shared memory segment specified by
shmid in memory. This cmd can only be executed
by a process that either has an effective user ID
equal to that of a user having appropriate privi‐
leges or has an effective user ID equal to the
value of either or in the data structure associ‐
ated with shmid and has the privilege (see get‐
privgrp(2)).
Unlock the shared memory segment specified by
shmid. This cmd can only be executed by a
process that either has an effective user ID
equal to a user having appropriate privileges or
has an effective user ID equal to the value of
either or in the data structure associated with
shmid and has the privilege (see getprivgrp(2)).
RETURN VALUE
returns the following values:
Successful completion.
Failure.
is set to indicate the error.
ERRORS
If fails, is set to one of the following values.
cmd is equal to and Read operation permission is
denied to the calling process (see in glos‐
sary(9)).
buf points to an illegal address. The reliable
detection of this error is implementation depen‐
dent.
cmd is equal to and the shared-memory segment speci‐
fied by shmid is not locked in memory.
shmid is not a valid shared memory identifier.
cmd is not a valid command, or the command contains
invalid parameters.
cmd is equal to and there is not sufficient lockable
memory to fill the request.
cmd is equal to The attached process count of a
shared memory object is too large for the field
in the data structure provided by the applica‐
tion. Recompile the application with the latest
file to resolve this issue.
cmd is equal to or and the effective user ID of the
calling process is not equal to that of a user
having appropriate privileges and it is not equal
to the value of either or in the data structure
associated with shmid.
cmd is equal to and the shared memory segment has
cmd is equal to or and the effective user ID of the
calling process is not equal to that of a user
having appropriate privileges and the calling
process does not have the privilege (see getpriv‐
grp(2)).
EXAMPLES
The following call to locks in memory the shared memory segment repre‐
sented by This example assumes the process has a valid shmid, which can
be obtained by calling shmget(2).
The following call to removes the shared memory segment represented by
This example assumes the process has a valid shmid, which can be
obtained by calling (see shmget(2).
AUTHOR
was developed by AT&T and HP.
SEE ALSOipcrm(1), ipcs(1), shmget(2), shmop(2), stdipc(3C), privileges(5),
STANDARDS CONFORMANCEshmctl(2)