Manual Page Result
0
Command: mq_receive | Section: 3 | Source: Digital UNIX | File: mq_receive.3.gz
mq_receive(3) Library Functions Manual mq_receive(3)
NAME
mq_receive - Receives the oldest, highest-priority message from the
message queue (P1003.1b)
SYNOPSIS
#include <mqueue.h>
ssize_t mq_receive (
mqd_t mqdes,
char *msg_ptr,
size_t msg_len,
unsigned int *msg_prio);
PARAMETERS
mqdes Specifies a message queue by descriptor.
*msg_ptr A pointer to a buffer to receive the message.
msg_len Specifies the size of the receive buffer identified by the
msg_ptr argument.
*msg_prio A pointer to a location to receive the message priority.
DESCRIPTION
Receives the oldest, highest-priority message from the message queue.
The message is removed from the queue and transferred to the buffer
pointed to by the msg_ptr argument.
If the specified message queue is empty and the O_NONBLOCK flag is not
set with the mqdes argument, the mq_receive function blocks until a
message is put on the queue, or until the mq_receive function is inter-
rupted by a signal. If more than one process is waiting to receive a
message when a message arrives at an empty queue, the highest-priority
process that has been waiting the longest is selected to receive the
message. If the message queue is empty and the O_NONBLOCK flag is set,
no message is removed from the queue, and an error is returned.
RETURN VALUES
On successful completion, the function returns the length of the se-
lected message.
Otherwise, the function returns the value -1 and sets errno to indicate
the error. No message is removed from the queue.
ERRORS
The mq_receive function fails under the following conditions:
[EAGAIN] O_NONBLOCK was set in the message description associated
with mqdes, and the specified message queue is empty.
[EBADF] The mqdes argument is not a valid message queue descrip-
tor open for reading.
[EBADMSG] The implementation has detected a data corruption prob-
lem with the message.
[EFAULT] Internal virtual memory error.
[EINTR] The mq_receive function was interrupted by a signal.
[EMSGSIZE] The specified message buffer size, msg_len is less than
the message size attribute of the message queue.
RELATED INFORMATION
Functions: mq_send(3) delim off
mq_receive(3)