mq_getattr, mq_setattr — get/set message queue attributes
#include <mqueue.h>
| int
            mq_getattr( | mqd_t mqdes, | 
| struct mq_attr *attr ); | 
| int
            mq_setattr( | mqd_t mqdes, | 
| struct mq_attr *newattr, | |
| struct mq_attr *oldattr ); | 
| ![[Note]](../stylesheet/note.png) | Note | 
|---|---|
| Link with  | 
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;long mq_maxmsg;long mq_msgsize;long mq_curmsgs;}; 
The mq_flags field
      contains flags associated with the open message queue
      description. This field is initialized 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.
On Linux, mq_getattr() and
      mq_setattr() are library
      functions layered on top of the mq_getsetattr(2) system
      call.
mq_close(3), mq_notify(3), mq_open(3), mq_receive(3), mq_send(3), mq_unlink(3), mq_overview(7)
This page is part of release 3.33 of the Linux man-pages project. A
      description of the project, and information about reporting
      bugs, can be found at http://man7.org/linux/man-pages/.
| t Copyright (C) 2006 Michael Kerrisk <mtk.manpagesgmail.com> Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Since the Linux kernel and libraries are constantly changing, this manual page may be incorrect or out-of-date. The author(s) assume no responsibility for errors or omissions, or for damages resulting from the use of the information contained herein. The author(s) may not have taken the same level of care in the production of this manual, which is licensed free of charge, as they might when working professionally. Formatted or processed versions of this manual, if unaccompanied by the source, must acknowledge the copyright and authors of this work. |