NAME
mq_setattr — set the blocking status of a message queue associated with a descriptor
SYNOPSIS
#include <sys/mqueue.h>
int mq_setattr(mqd_t mqdes,
const struct mq_attr *mqstat,
struct mq_attr *omqstat,
);
DESCRIPTION
The
mq_setattr()
system call changes the blocking status of a message queue associated with the
descriptor,
mqdes.
The blocking status that is modified is per message queue descriptor and
another open descriptor for the same message queue can have a different
blocking status.
The argument
mqstat,
points to an
mq_attr
structure that specifies the blocking status desired. More specifically, if
the
O_NONBLOCK
bit in the
mq_flags
field of the
mq_attr
structure is set, the descriptor is marked as non-blocking. Otherwise it is
marked as blocking.
If
omstat
is non-NULL,
mq_setattr()
will store in the
mq_attr
structure referenced by
omqstat,
the previous message queue attributes and the queue blocking status associated
with this
mqdes.
The values returned are the same as would be returned by a call to
mq_getattr().
To use this function, link in the realtime library by specifying
-lrt
on the compiler or linker command line.
RETURN VALUE
mq_setattr()
returns the following values:
- 0
Successful completion.
- -1
Failure.
errno
is set to indicate the error.
ERRORS
If
mq_setattr()
fails,
errno
is set to one of the following values:
- [EBADF]
mqdes
is not a valid message queue descriptor.
- [EINVAL]
mqstat
does not point to a valid
mq_attr
structure, or
omqstat
is non-NULL and does not point to a valid
mq_attr
structure.
- [ENOSYS]
mq_setattr()
is not supported by the implementation.
STANDARDS CONFORMANCE
mq_setattr(): POSIX 1003.1b