mq_receive(2)mq_receive(2)NAMEmq_receive - receive a message from a message queue
SYNOPSISDESCRIPTION
The system call receives the oldest of the highest priority message
from the message queue specified by mqdes. The selected message is
removed from the queue and copied to the buffer pointed to by the
msg_ptr argument. The argument, msg_len, specifies the size of the buf‐
fer in bytes. The value of msg_len should be greater than or equal to
the mq_msgsize attribute of the message queue, or will fail.
If the argument msg_prio is not NULL, the priority of the message
removed from the queue is stored in the location pointed to by
msg_prio.
If the specified message queue is empty and the flag is not set in the
message queue blocking status associated with mqdes, will block in pri‐
ority order, until it can receive a message from the queue, or until is
interrupted by a signal. If the specified message queue is empty and
the flag is set in the message queue blocking status associated with
mqdes, will not wait for a message to arrive on the queue and will
return with an error.
To use this function, link in the realtime library by specifying on the
compiler or linker command line.
RETURN VALUE
returns the following values:
n Successful completion. n is the size of the selected mes‐
sage in bytes and the message is removed from the queue.
Failure.
is set to indicate the error and no message is removed from
the queue.
ERRORS
If fails, is set to one of the following values:
[EAGAIN] The flag is set in the message queue blocking
status associated with mqdes, and the message
queue is empty.
[EBADF] mqdes is not a valid message queue descriptor
open for reading.
[EINTR] A signal interrupted the call to
[EINVAL] msg_ptr points to an invalid address.
[EMSGSIZE] The specified message buffer size, msg_len, is
less than the message size attribute of the mes‐
sage queue.
[ENOSYS] is not supported by the implementation.
SEE ALSOmq_send(2).
STANDARDS CONFORMANCEmq_receive(2)