mq_reltimedreceive_np man page on SmartOS

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

MQ_RECEIVE(3C)							MQ_RECEIVE(3C)

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

SYNOPSIS
       #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(3C)
       and  mq_setattr(3C)),  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(3C) 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 associated
		    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 timeout
		    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 │ Committed	      │
       ├────────────────────┼─────────────────┤
       │MT-Level	    │ MT-Safe	      │
       ├────────────────────┼─────────────────┤
       │Standard	    │ See below.      │
       └────────────────────┴─────────────────┘

       For mq_receive() and mq_timedreceive(). see standards(5).

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

				  Feb 5, 2008			MQ_RECEIVE(3C)
[top]

List of man pages available for SmartOS

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