Set a queue's attributes
Synopsis:
#include <mqueue.h>
int mq_setattr( mqd_t mqdes,
const struct mq_attr* mqstat,
struct mq_attr* omqstat );
Arguments:
- mqdes
- The message-queue descriptor, returned by
mq_open(),
of the message queue that you want to set the attributes of.
- mqstat
- A pointer to a mq_attr structure that specifies the
attributes that you want to use for the message queue.
For more information about this structure, see
mq_getattr();
for information about which attributes you can set, see below.
- omqstat
- NULL, or a pointer to a mq_attr structure
where the function can store the old attributes of the message queue.
Description:
The mq_setattr() function sets the
mq_flags field for the specified queue (passed as the
mq_flags field in mqstat). If
omqstat isn't NULL, then the old attribute
structure is stored in the location that it points to.
Note:
QNX Neutrino supports two implementations of message queues:
a traditional implementation, and an alternate one that uses
asynchronous messages.
For more information, see the entries for
mq
and
mqueue
in the
Utilities Reference, as well as the
Managing POSIX Message Queues
technote.
This function ignores the mq_maxmsg, mq_msgsize, and
mq_curmsgs fields of mqstat.
The mq_flags field is the
bitwise OR of zero or more of the following constants:
- O_NONBLOCK
- No
mq_receive()
or
mq_send()
will ever block
on this queue. If the queue is in such a condition that the given
operation can't be performed without blocking, then an error is
returned, and errno is set to EAGAIN.
Note:
The settings that you make for mq_flags apply only to the
given message-queue description (i.e. locally), not to the queue itself.
Returns:
-1 if the function couldn't change the attributes
(errno
is set).
Any other value indicates success.
Errors:
- EBADF
- Invalid message queue mqdes.
Classification:
POSIX 1003.1 MSG
Safety: |
|
Cancellation point |
No |
Interrupt handler |
No |
Signal handler |
No |
Thread |
Yes |