Manual Page Result
0
Command: mq_send | Section: 3 | Source: Digital UNIX | File: mq_send.3.gz
mq_send(3) Library Functions Manual mq_send(3)
NAME
mq_send - Places a message in the message queue (P1003.1b)
SYNOPSIS
#include <mqueue.h>
int mq_send (
mqd_t mqdes,
const char *msg_ptr,
size_t msg_len,
unsigned int msg_prio);
PARAMETERS
mqdes Specifies a message queue descriptor.
*msg_ptr A pointer to a buffer containing the message to be sent.
msg_len Indicates the number of bytes of the message to be sent.
msg_prio Indicates the priority of the message being sent.
DESCRIPTION
Places a message in the message queue. This function inserts the mes-
sage in the queue at the position indicated by the msg_prio argument.
A message with a relatively large numeric value for the msg_prio argu-
ment has a high priority, and it is therefore inserted before messages
with lower values for the msg_prio argument. This function inserts
messages with equal priority into the queue in first-in/first-out or-
der. Thus the function inserts a message with a given priority after
already-queued messages that have the same priority.
If the message queue is full, and the O_NONBLOCK flag associated with
it is not set, the mq_send function blocks until either sufficient
space in the message queue becomes available or a signal interrupts the
mq_send function.
If two or more processes are waiting to send messages when space be-
comes available in the queue, the highest priority process that has
been waiting the longest sends the message first.
The mq_send function returns an error indication if the specified queue
is full and the O_NONBLOCK flag is set for that queue.
RETURN VALUES
On successful completion, the mq_send function returns a value of zero.
Otherwise, no message is sent, -1 is returned, and errno is set to in-
dicate the error.
ERRORS
The mq_send function fails under the following conditions:
[EAGAIN] The O_NONBLOCK flag is set in the message queue descrip-
tion associated with mqdes, and the specified message
queue is full.
[EBADF] The mqdes argument is not a valid message queue descrip-
tor open for writing.
[EFAULT] Internal virtual memory error.
[EINTR] A signal interrupted the call to mq_send.
[EINVAL] The value of msg_prio is outside the valid range.
[EMSGSIZE] The specified message length, msg_len, exceeds the mes-
sage size attribute of the message queue. Note that a
zero length message is valid.
RELATED INFORMATION
Functions: mq_receive(3), mq_setattr(3) delim off
mq_send(3)