[Go to CFHT Home Page] Man Pages
Back to Software Index  BORDER=0Manpage Top Level
    mq_setattr(3R) manual page Table of Contents

Name

mq_setattr, mq_getattr - set/get message queue attributes

Synopsis

cc [ flag ... ] file ... -lposix4 [ library ... ]

#include <mqueue.h>

int mq_setattr(mqd_t mqdes, const struct mq_attr *mqstat, struct mq_attr* omqstat);

int mq_getattr(mqd_t mqdes, struct mq_attr *mqstat);

struct mq_attr {
   long    mq_flags;    /* message queue flags */

   long    mq_maxmsg;    /* maximum number of messages */

   long    mq_msgsize;    /* maximum message size */

   long    mq_curmsgs;    /* number of messages currently queued */

   ...

};

MT-Level

MT-Safe

Description

mq_setattr() is used to set attributes associated with the message queue specified by mqdes.

The message queue attributes corresponding to the following members defined in the mq_attr structure are set to the specified values upon successful completion of mq_setattr():

mq_flags
The value of this member is either 0 or O_NONBLOCK.

The values of mq_maxmsg, mq_msgsize, and mq_curmsgs are ignored by mq_setattr().

If omqstat is non-NULL , mq_setattr() stores, in the location referenced by omqstat, the previous message queue attributes and the current queue status. These values are the same as would be returned by a call to mq_getattr() at that point. mq_getattr() is used to get status information and attributes associated with the message queue specified in mqdes. Upon return, the mq_flags member of the mq_attr structure referenced by mqstat has the value that was set when the message queue was created but also with modifications made by subsequent mq_setattr() calls.

The following attributes were set at message queue creation:

mq_maxmsg

mq_msgsize

Upon return, the mq_curmsgs (the number of messages currently on the queue) member of the mq_attr structure referenced by mqstat is set according to the current state of the message queue.

Return Values

Upon successful completion, these function(s) return 0; otherwise, they return -1, and set errno to indicate the error condition.

mq_setattr(), if successful, also changes the attributes of the message queue as specified.

Errors

EBADF
mqdes is not a valid message queue descriptor.
ENOSYS
mq_setattr() and mq_getattr() are not supported by this implementation.

See Also

mq_open(3R) , mq_receive(3R) , mq_send(3R)

Bugs

In Solaris 2.5, these functions always return -1 and set errno to ENOSYS, because this release does not support the Message Passing option. It is our intention to provide support for these interfaces in future releases.


Table of Contents