*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->Tru64 Unix man pages -> mq_send (3)              



NAME    [Toc]    [Back]

       mq_send - Places a message in the message queue (P1003.1b)

SYNOPSIS    [Toc]    [Back]

       #include <mqueue.h>

       int mq_send ( mqd_t mqdes,  const  char  *msg_ptr,  size_t
       msg_len, unsigned int msg_prio);

LIBRARY    [Toc]    [Back]

       Realtime Library (librt.so, librt.a)

PARAMETERS    [Toc]    [Back]

       Specifies a message queue descriptor.  Specifies a pointer
       to a buffer containing the message to be sent.   Indicates
       the  number of bytes of the message to be sent.  Indicates
       the priority of the message being sent.

DESCRIPTION    [Toc]    [Back]

       The mq_send function  places  a  message  in  the  message
       queue.  This  function inserts the message in the queue at
       the position indicated by the msg_prio argument.   A  message
  with  a  relatively  large  numeric  value  for  the
       msg_prio argument 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 order.
       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  option
       associated with it is not set, the mq_send function blocks
       until sufficient space in the message queue becomes available
 or until a signal interrupts the mq_send function.

       If two or more processes are waiting to send messages when
       space becomes available in the queue, the highest-priority
       process  that  has been waiting the longest sends the message

       The mq_send function returns an  error  if  the  specified
       queue  is  full  and the O_NONBLOCK option is set for that

RETURN VALUES    [Toc]    [Back]

       On successful completion, the mq_send function  returns  a
       value of 0 (zero).

       Otherwise,  no  message is sent, -1 is returned, and errno
       is set to indicate the error.

ERRORS    [Toc]    [Back]

       The mq_send function fails under the following conditions:
       The O_NONBLOCK option is set in the message queue description
 associated with  mqdes,  and  the  specified  message
       queue  is full.  The mqdes argument is not a valid message
       queue descriptor open for writing.   An  internal  virtual
       memory  error  occurred.  A signal interrupted the call to
       mq_send.  The value  of  msg_prio  is  outside  the  valid
       range.  The specified message length, msg_len, exceeds the
       message size attribute of the message queue. Note  that  a
       zero-length message is valid.

SEE ALSO    [Toc]    [Back]

       Functions: mq_receive(3), mq_setattr(3)

       Guide to Realtime Programming

[ Back ]
 Similar pages
Name OS Title
mq_open Tru64 Establishes the connection between a message queue and a message queue descriptor (P1003.1b)
mq_receive Tru64 Receives the oldest, highest-priority message from the message queue (P1003.1b)
putbq Tru64 STREAMS: Places a message at the head of a queue
mq_close Tru64 Closes a message queue (P1003.1b)
mq_unlink Tru64 Removes a message queue (P1003.1b)
mq_setattr Tru64 Sets the mq_options attributes associated with a message queue (P1003.1b)
mq_getattr Tru64 Returns the status and attributes of a message queue (P1003.1b)
mq_notify Tru64 Attaches a request for asynchronous signal notification to a message queue (P1003.1b)
msgsnd NetBSD send a message to a message queue
msgsnd Tru64 Send a message to a message queue
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service