mq_receive man page on SunOS

Man page or keyword search:  
man Server   20652 pages
apropos Keyword Search (all sections)
Output format
SunOS logo
[printable version]

mq_receive(3RT)		  Realtime Library Functions	       mq_receive(3RT)

NAME
       mq_receive,  mq_timedreceive, mq_reltimedreceive_np - receive a message
       from a message queue

SYNOPSIS
       cc [ flag... ] file... -lrt [ library... ]
       #include <mqueue.h>

       ssize_t mq_receive(mqd_t mqdes, char *msg_ptr, size_t msg_len, unsigned
       *msg_prio);

       #include <mqueue.h>
       #include <time.h>

       ssize_t	mq_timedreceive(mqd_t  mqdes,  char  *restrict msg_ptr, size_t
       msg_len, unsigned *restrict msg_prio, const struct  timespec  *restrict
       abs_timeout);

       ssize_t	mq_reltimedreceive_np(mqd_t  mqdes,  char  *restrict  msg_ptr,
       size_t msg_len, unsigned	 *restrict  msg_prio,  const  struct  timespec
       *restrict rel_timeout);

DESCRIPTION
       The  mq_receive()  function receives the oldest of the highest priority
       message(s) from the message queue specified by mqdes. If	 the  size  of
       the  buffer in bytes, specified by msg_len, is less than the mq_msgsize
       member of the message queue, the function fails and returns  an	error.
       Otherwise, the selected message is removed from the queue and copied to
       the buffer pointed to by msg_ptr.

       If the value of msg_len is greater  than	 {SSIZE_MAX},  the  result  is
       implementation-defined.

       If msg_prio is not NULL, the priority of the selected message is stored
       in the location referenced by msg_prio.

       If the specified message queue is empty and  O_NONBLOCK is not  set  in
       the  message queue description associated with mqdes, (see mq_open(3RT)
       and mq_setattr(3RT)), mq_receive() blocks, waiting until a  message  is
       enqueued	 on the message queue, or until mq_receive() is interrupted by
       a signal. If more than one process (or thread) is waiting to receive  a
       message	when  a message arrives at an empty queue, then the process of
       highest priority that has been  waiting	the  longest  is  selected  to
       receive	the  message.  If  the	specified  message  queue is empty and
       O_NONBLOCK is set in the	 message  queue	 description  associated  with
       mqdes,  no  message is removed from the queue, and mq_receive() returns
       an error.

       The mq_timedreceive() function receives the oldest of the highest  pri‐
       ority  messages	from the message queue specified by mqdes as described
       for the mq_receive() function. However, if O_NONBLOCK was not specified
       when  the  message queue was opened with the mq_open(3RT) function, and
       no message exists on the queue to satisfy the  receive,	the  wait  for
       such  a	message	 is  terminated when the specified timeout expires. If
       O_NONBLOCK is set, this function is equivalent to mq_receive().

       The mq_reltimedreceive_np()  function  is  identical  to	 the  mq_time‐
       dreceive() function, except that the timeout is specified as a relative
       time interval.

       For mq_timedreceive(), the timeout expires when the absolute time spec‐
       ified  by  abs_timeout  passes, as measured by the CLOCK_REALTIME clock
       (that is, when the value of that clock equals or exceeds	 abs_timeout),
       or  if  the  absolute  time  specified  by abs_timeout has already been
       passed at the time of the call.

       For mq_reltimedreceive_np(), the timeout expires when the time interval
       specified  by  rel_timeout  passes,  as	measured by the CLOCK_REALTIME
       clock, or if the time interval specified by rel_timeout is negative  at
       the time of the call.

       The  resolution	of the timeout is the resolution of the CLOCK_REALTIME
       clock. The timespec argument is defined in the <time.h> header.

       Under no circumstance does the operation fail with a timeout if a  mes‐
       sage can be removed from the message queue immediately. The validity of
       the timeout parameter need not be checked if a message can  be  removed
       from the message queue immediately.

RETURN VALUES
       Upon   successful   completion,	mq_receive(),  mq_timedreceive(),  and
       mq_reltimedreceive_np() return the length of the	 selected  message  in
       bytes  and the message is removed from the queue. Otherwise, no message
       is removed from the queue, the functions return a value of −1, and sets
       errno to indicate the error condition.

ERRORS
       The  mq_receive(), mq_timedreceive(), and mq_reltimedreceive_np() func‐
       tions will fail if:

       EAGAIN	       O_NONBLOCK was set in the message  description  associ‐
		       ated  with  mqdes,  and	the specified message queue is
		       empty.

       EBADF	       The  mqdes  argument  is	 not  a	 valid	message	 queue
		       descriptor open for reading.

       EINTR	       The function was interrupted by a signal.

       EINVAL	       The process or thread would have blocked, and the time‐
		       out parameter specified a nanoseconds field value  less
		       than zero or greater than or equal to 1,000 million.

       EMSGSIZE	       The  specified  message	buffer	size, msg_len, is less
		       than the message size member of the message queue.

       ETIMEDOUT       The O_NONBLOCK flag was not set when the message	 queue
		       was  opened, but no message arrived on the queue before
		       the specified timeout expired.

       The mq_receive(), mq_timedreceive(), and mq_reltimedreceive_np()	 func‐
       tions may fail if:

       EBADMSG	       A  data	corruption  problem  with the message has been
		       detected.

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

       ┌─────────────────────────────┬─────────────────────────────┐
       │      ATTRIBUTE TYPE	     │	    ATTRIBUTE VALUE	   │
       ├─────────────────────────────┼─────────────────────────────┤
       │Interface Stability	     │See below.		   │
       ├─────────────────────────────┼─────────────────────────────┤
       │MT-Level		     │MT-Safe			   │
       └─────────────────────────────┴─────────────────────────────┘

       The mq_receive() and  mq_timedreceive()	functions  are	Standard.  The
       mq_reltimedreceive_np() function is Stable.

SEE ALSO
       mqueue.h(3HEAD),	    mq_open(3RT),    mq_send(3RT),    mq_setattr(3RT),
       attributes(5), standards(5)

SunOS 5.10			  30 Jan 2004		       mq_receive(3RT)
[top]

List of man pages available for SunOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net