System
V Message Queues
949
msg_ctime
This field is set to the current time when the message queue is created and
whenever an
IPC_SET
operation is successfully performed.
__msg_cbytes
This field is set to 0 when the message queue is created, and then adjusted
during each successful msgsnd() and msgrcv() to
reflect the total number of
bytes contained in the mtext fields of all messages in the queue.
msg_qnum
When the message queue is created, this field is set to 0. It is then incre-
mented by each successful msgsnd() and decremented by each successful
msgrcv() to reflect the total number of messages in the queue.
msg_qbytes
The value in this field defines an upper limit on the number of bytes in the
mtext fields of all messages in the message queue.
This field is initialized to
the value of the
MSGMNB
limit when the queue is created. A privileged
(
CAP_SYS_RESOURCE
) process can use the
IPC_SET
operation to adjust msg_qbytes
to any value in the range 0 to
INT_MAX
(2,147,483,647 on 32-bit platforms)
bytes. An unprivileged process can adjust msg_qbytes to any value in the
range 0 to
MSGMNB
. A privileged user can modify the
value contained in the
Linux-specific
/proc/sys/kernel/msgmnb
file in order to change the initial
msg_qbytes setting for all subsequently created message queues, as well as
the upper limit for subsequent changes to msg_qbytes by unprivileged pro-
cesses. We say more about message queue limits in Section 46.5.
msg_lspid
This field is set to 0
when the queue is created, and then set to the process
ID of the calling process on each successful msgsnd().
msg_lrpid
This field is set to 0 when the message queue is created, and then set to the
process ID of the calling process on each successful msgrcv().
All of the above fields are specified by SUSv3, with the exception of __msg_cbytes. Never-
theless, most UNIX implementations provide an equivalent of the __msg_cbytes field.
The program in Listing 46-5 demonstrates the use of the
IPC_STAT
and
IPC_SET
operations to modify the msg_qbytes setting of a message queue.
Chia sẻ với bạn bè của bạn: