 |
Index for Section 4 |
|
 |
Alphabetical listing for M |
|
 |
Bottom of page |
|
msqid_ds(4)
NAME
msqid_ds - Defines a message queue
SYNOPSIS
#include <sys/msg.h>
struct msqid_ds{
struct ipc_perm msg_perm;
struct msg *msg_first;
struct msg *msg_last;
u_short msg_cbytes;
u_short msg_qnum;
u_short msg_qbytes;
u_short msg_lspid;
ushort msg_lrpid;
time_t msg_stime;
time_t msg_rtime;
time_t msg_ctime;
};
DESCRIPTION
The msqid_ds structure defines a message queue associated with a message
queue ID. There is one queue per message queue ID. Collectively, the
queues are stored as an array, with message queue IDs serving as an index
into the array.
A message queue is implemented as a linked list of messages, with msg_first
amd msg_last pointing to the first and last messages on the queue.
The IPC permissions for the message queue are implemented in a separate,
but associated, ipc_perm structure.
A message queue is created indirectly by the msgget() call. If msgget() is
called with a non-existent message queue ID, the kernel allocates a new
msqid_ds structure, initializes it, and returns the message queue ID that
is to be associated with the message queue.
The following sections describe the fields in the msqid_ds structure and
show the ipc_perm structure identified by the msg_perm field.
FIELDS
msg_perm The ipc_perm structure that defines permissions for message
operations.
msg_first A pointer to the first message on the queue.
msg_last A pointer to the last message on the queue.
msg_cbytes
The current number of bytes on the queue.
msg_qnum The number of messages currently on the queue.
msg_qbytes
The maximum number of bytes allowed on the queue.
msg_lspid The process ID of the last process that called msgsnd() for the
queue.
msg_lrpid The process ID of the last process that called msgrcv() for the
queue.
msg_stime The time of the last msgsnd() operation.
msg_rtime The time of the last msgrcv() operation.
msg_ctime The time of the last msgctl() operation that changed a member of
the ipc_perm structure designated by the msg_perm field.
THE ipc_perm STRUCTURE
The msg_perm field identifies the associated ipc_perm structure that
defines the permissions for operations on the message queue. The ipc_perm
structure (defined in the sys/ipc.h header file) is as follows:
struct ipc_perm {
ushort uid; /* owner's user id */
ushort gid; /* owner's group id */
ushort cuid; /* creator's user id */
ushort cgid; /* creator's group id */
ushort mode; /* access modes */
ushort seq; /* slot usage sequence number */
key_t key; /* key */
};
The mode field of the ipc_perm structure is a 9-bit field that contains the
permissions for message operations. The first three bits identify owner
permissions; the second three bits identify group permissions; and the last
three bits identify other permissions. In each group, the first bit
indicates read permission; the second bit indicates write permission; and
the third bit is not used.
SEE ALSO
Functions: msgctl(2), msgget(2), msgrcv(2), msgsnd(2)
 |
Index for Section 4 |
|
 |
Alphabetical listing for M |
|
 |
Top of page |
|