msgget(2)msgget(2)NAMEmsgget - get message queue
SYNOPSISDESCRIPTION
returns the message queue identifier associated with key.
A message queue identifier and associated message queue and data struc‐
ture are created for key if one of the following is true:
key is equal to This call creates a new identifier, subject to
available resources. The identifier will never be returned by
another call to until it has been released by a call to The
identifier should be used among the calling process and its
descendents; however, it is not a requirement. The resource can
be accessed by any process having the proper permissions.
key does not already have a message queue identifier associated
with it, and (msgflg is "true".
On creation of a new queue, queue sizes above 64Kbytes can only
be constructed when the application is compiled with the flag
defined either explicitly with a in the source or with at com‐
pile time.
WARNING: Programs compiled on HP-UX revisions prior to 11i Ver‐
sion 1 use old 16-bit structure fields (obtained via of the sys‐
tem call) which can describe queue sizes only up to 64KBytes.
Care must be taken such that queues shared with such programs
are not made larger than 64KBytes (i.e., that is not specified
when compiling the caller of Or, those existing programs should
be recompiled. Or, the system administrator should restrict the
kernel tunable parameter to 64KBytes or less.
Upon creation, the data structure associated with the new message queue
identifier is initialized as follows:
and are set equal to the effective user ID and effective group
ID, respectively, of the calling process.
The low-order 9 bits of are set equal to the low-order 9 bits of
msgflg.
and are set equal to 0.
is set equal to the current time.
is set equal to the system limit.
Security Restrictions
Some or all of the actions associated with this system call are subject
to compartmental restrictions. See compartments(5) for more informa‐
tion 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.
See privileges(5) for more information about privileged access on sys‐
tems that support fine-grained privileges.
RETURN VALUE
Upon successful completion, a non-negative integer, namely a message
queue identifier, 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:
A message queue identifier exists for
key, but operation permission as specified by the low-
order 9 bits of msgflg would not be granted.
A message queue identifier does not exist for
key and (msgflg is "false".
A message queue identifier is to be created but the system-imposed
limit
on the maximum number of allowed message queue identi‐
fiers system wide would be exceeded.
A message queue identifier exists for
key but ((msgflg & && (msgflg & is "true".
SEE ALSOipcrm(1), ipcs(1), msgctl(2), msgop(2), stdipc(3C), privileges(5).
STANDARDS CONFORMANCEmsgget(2)