## NAME

mq_setattr, mq_getattr - set/get message queue attributes

## SYNOPSIS

#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 */
  ...
};

## 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.

## SEE ALSO

mq_open(), mq_receive(), mq_send()

#### Home page (Kernel)

## < Copyright Rowebots Research Inc. and Multiprocessor Toolsmiths Inc. 1987-2018 >