MsgQueueSend()
QNX SDP8.0C Library ReferenceAPIDeveloper
Send a message on an open queue
Note: 
  
      Don't use the MsgQueueSend() kernel call directly;
      instead, use mq_send().
    
Synopsis:
#include <sys/neutrino.h>
int MsgQueueSend( int fd,
                  char const* msg,
                  size_t msglen,
                  unsigned priority );
Arguments:
- fd
 - A coid that identifies the open queue to send a message on.
 - msg
 - A pointer to a buffer containing the message to send.
 - msglen
 - The length of the buffer. This must not be larger than the queue's mq_msgsize.
 - priority
 - The mq priority at which to send the message.
 
Library:
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
Description:
The MsgQueueSend() kernel call enqueues a message to the message queue specified by fd. If the queue is full and O_NONBLOCK was not specified, the calling thread enters the STATE_MQ_SEND state, indicating it is blocked while waiting for space to become available on the queue. If O_NONBLOCK was specified, the call does not block and instead returns EAGAIN.
Returns:
- 0
 - Success.
 - -1
 - An error occurred (errno is set).
 
Errors:
- EAGAIN
 - The queue is full and O_NONBLOCK was set.
 - EBADF
 - One of the following errors occured:
      
- The fd is not associated with a message queue.
 - The fd is not open for writing.
 
 - EINTR
 - The operation was interrupted by a signal.
 - EINVAL
 - The priority is out of range.
 - EMSGSIZE
 - The message size is too big for the queue.
 - ETIMEDOUT
 - The queue is full and a timeout expired.
 
Classification:
| Safety: | |
|---|---|
| Cancellation point | No | 
| Signal handler | Yes | 
| Thread | Yes | 
Page updated: 
