msgctl(2)msgctl(2)NAMEmsgctl() - message control operations
SYNOPSISDESCRIPTION
provides a variety of message control operations as specified by cmd.
The following cmds are available:
Place the current value of each member of the data structure
associated with
msqid into the structure pointed to by buf. The
contents of this structure are defined in glos‐
sary(9). This command requres the privilege to
operate on a message queue not permitted by
access modes. This command requires the privilege
to operate on a message queue in a different com‐
partment.
Set the value of the following members of the data structure
associated with
msqid to the corresponding value found in the
structure pointed to by buf:
This cmd can only be executed by a process that
has the privilege or has an effective user ID
equal to the value of either or in the data
structure associated with msqid. Only a user
with the privilege can raise the value of
WARNING: Programs compiled on HP-UX revisions
prior to HP-UX 11i v1 use old 16-bit msqid_ds
structure fields (obtained via which can describe
queue sizes only up to 64 KBytes. Care must be
taken such that queues shared with such programs
are not made larger than 64 KBytes (65535). Or,
those existing programs should be recompiled.
Or, the system administrator should restrict the
kernel tunable parameter to 64 KBytes or less.
Remove the message queue identifier specified by
msqid from the system and destroy the message
queue and data structure associated with it.
This cmd can only be executed by a process that
has the privilege or has an effective user ID
equal to the value of either or in the data
structure associated with msqid.
Security Restrictions
Some or all of the actions associated with this system call are subject
to compartmental restrictions. See compartments(5) for more information
about compartmentalization on systems that support that feature.
Compartmental restrictions can be overridden if the process possesses
the privilege (PRIV_COMMALLOWED). Processes owned by the superuser may
not have this privilege. Processes owned by any user may have this
privilege, depending on system configuration.
Some or all of the actions associated with this system call require the
or privileges (PRIV_DACREAD, PRIV_LIMIT or PRIV_OWNER). Processes
owned by the superuser have these privileges. Processes owned by other
users may have one or more of these privileges, depending on system
configuration.
See privileges(5) for more information about privileged access on sys‐
tems that support fine-grained privileges.
RETURN VALUE
Upon successful completion, a value of 0 is returned. Otherwise, a
value of −1 is returned and is set to indicate the error.
ERRORS
fails if one or more of the following is true:
msqid is not a valid message queue identifier.
cmd is not a valid command, or the command contains invalid
parameters.
cmd is equal to and Read operation permission is denied to
the calling process (see message operation permissions
in glossary(9)).
cmd is equal to or and the calling process does not have the
privilege or the effective user ID of the calling
process is not equal to the value of either or in the
data structure associated with msqid.
cmd is equal to an attempt is being made to increase to the
value of and the user does not have the privilege.
buf points to an illegal address. Reliable detection of
this error is implementation dependent.
SEE ALSOipcrm(1), ipcs(1), msgget(2), msgop(2), ftok(3C), privileges(5).
STANDARDS CONFORMANCEmsgctl(2)