mq_getattr, mq_setattr — get/set message queue attributes
#include <mqueue.h>
mqd_t
mq_getattr( |
mqd_t | mqdes, |
struct mq_attr * | attr) ; |
mqd_t
mq_setattr( |
mqd_t | mqdes, |
struct mq_attr * | newattr, | |
struct mq_attr * | oldattr) ; |
mq_getattr
() and
mq_setattr
() respectively
retrieve and modify attributes of the message queue referred
to by the descriptor mqdes
.
mq_getattr
() returns an
mq_attr
structure
in the buffer pointed by attr
. This structure is defined
as:
struct mq_attr { }; long mq_flags
;/* Flags: 0 or O_NONBLOCK */ long mq_maxmsg
;/* Max. # of messages on queue */ long mq_msgsize
;/* Max. message size (bytes) */ long mq_curmsgs
;/* # of messages currently in queue */
The mq_flags
field contains flags associated with the open message queue
description. This field is initialised when the queue is
created by mq_open(3). The only flag
that can appear in this field is O_NONBLOCK
.
The mq_maxmsg
and mq_msgsize
fields are set when the message queue is created by mq_open(3). The mq_maxmsg
field is an upper
limit on the number of messages that may be placed on the
queue using mq_send(3). The mq_msgsize
field is an upper
limit on the size of messages that may be placed on the
queue. Both of these fields must have a value greater than
zero. Two /proc
files that
place ceilings on the values for these fields are described
in mq_open(3).
The mq_curmsgs
field returns the number of messages currently held in the
queue.
mq_setattr
() sets message
queue attributes using information supplied in the mq_attr
structure pointed to
by newattr
. The only
attribute that can be modified is the setting of the
O_NONBLOCK
flag in mq_flags
. The other fields in
newattr
are ignored.
If the oldattr
field
is not NULL, then the buffer that it points to is used to
return an mq_attr
structure that contains the same information that is returned
by mq_getattr
().
On success mq_getattr
() and
mq_setattr
() return 0; on
error, −1 is returned, with errno
set to indicate the error.
The descriptor specified in mqdes
is invalid.
newattr->mq_flags
contained set bits other than O_NONBLOCK
.
mq_close(3), mq_notify(3), mq_open(3), mq_receive(3), mq_send(3), mq_unlink(3), mq_overview(7)
|