IPB
>  Man Pages > Unix > Solaris 10 11/06 > Section 2 > msgrcv man page

msgrcv man page

Section 2 - Solaris 10 11/06 Man Pages

Other operating system man pages available here


Advanced Search

Hopefully, this page is exactly what you are looking for, but if not, you can always find further assistance on Unix/Linux Forum!





System Calls                                            msgrcv(2)



NAME
     msgrcv - message receive operation

SYNOPSIS
     #include <sys/msg.h>

     ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long int
     msgtyp, int msgflg);

DESCRIPTION
     The msgrcv() function reads a message from the queue associ-
     ated  with  the  message queue identifier specified by msqid
     and places it in the user-defined buffer pointed to by msgp.

     The msgp argument points to a user-defined buffer that  must
     contain first a field of type long int that will specify the
     type of the message, and then a data portion that will  hold
     the  data  bytes  of  the message. The structure below is an
     example of what this user-defined buffer might look like:

     struct mymsg {
             long int    mtype;     /* message type */
             char        mtext[1];  /* message text */
     }


     The mtype member is the received message's type as specified
     by the sending process.

     The mtext member is the text of the message.

     The  msgsz argument specifies the size in  bytes  of  mtext.
     The  received  message  is truncated to msgsz bytes if it is
     larger than msgsz and (msgflg&MSG_NOERROR) is non-zero.  The
     truncated  part  of the message is lost and no indication of
     the truncation is given to the calling process.

     The msgtyp argument specifies the type of message  requested
     as follows:

       o  If msgtyp is 0, the  first  message  on  the  queue  is
          received.

       o  If msgtyp is greater than 0, the first message of  type
          msgtyp is received.

       o  If msgtyp is less than 0,  the  first  message  of  the
          lowest  type that is less than or equal to the absolute
          value of msgtyp is received.






SunOS 5.10          Last change: 19 May 1999                    1






System Calls                                            msgrcv(2)



     The msgflg argument specifies which of the following actions
     is  to  be  taken if a message of the desired type is not on
     the queue:

       o  If (msgflg&IPC_NOWAIT) is non-zero, the calling process
          will  return  immediately with a return value of -1 and
          errno set to ENOMSG.

       o  If (msgflg&IPC_NOWAIT) is 0, the calling  process  will
          suspend execution until one of the following occurs:

            o  A message of the desired type  is  placed  on  the
               queue.

            o  The message queue identifier msqid is removed from
               the  system  (see  msgctl(2));  when  this occurs,
               errno is set equal to EIDRM and -1 is returned.

            o  The calling process receives a signal that  is  to
               be  caught; in this case a message is not received
               and the calling process resumes execution  in  the
               manner prescribed in sigaction(2).



     Upon successful completion, the following actions are  taken
     with  respect  to  the  data structure associated with msqid
     (see intro(2)):

       o  msg_qnum is decremented by 1.

       o  msg_lrpid is set equal to the process ID of the calling
          process.

       o  msg_rtime is set equal to the current time.


RETURN VALUES
     Upon successful completion, msgrcv() returns a  value  equal
     to  the  number  of  bytes  actually  placed into the buffer
     mtext. Otherwise, -1 is returned, no  message  is  received,
     and errno is set to indicate the error.

ERRORS
     The msgrcv() function will fail if:

     E2BIG           The value of mtext is greater than msgsz and
                     (msgflg&MSG_NOERROR) is 0.







SunOS 5.10          Last change: 19 May 1999                    2






System Calls                                            msgrcv(2)



     EACCES          Operation permission is denied to  the  cal-
                     ling process.  See intro(2).



     EIDRM           The  message  queue  identifier   msqid   is
                     removed from the system.



     EINTR           The msgrcv() function was interrupted  by  a
                     signal.



     EINVAL          The msqid argument is not  a  valid  message
                     queue identifier.



     ENOMSG          The queue does not contain a message of  the
                     desired   type  and  (msgflg&IPC_NOWAIT)  is
                     non-zero.



     The msgrcv() function may fail if:

      EFAULT         The  msgp  argument  points  to  an  illegal
                     address.



USAGE
     The value passed as the msgp argument should be converted to
     type void *.

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

     ____________________________________________________________
    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    |_____________________________|_____________________________|
    | Interface Stability         | Standard                    |
    |_____________________________|_____________________________|


SEE ALSO
     intro(2),  msgctl(2),  msgget(2),  msgsnd(2),  sigaction(2),
     attributes(5), standards(5)




SunOS 5.10          Last change: 19 May 1999                    3





Man(1) output converted with man2html and wrapped by fishsponge

This page was generated on Wed Sep 12 11:27:03 GMT 2007

Your favourite pages:

No pages logged yet.
Trying to save cookie...

Top 10 most popular pages:

sqlite3 man page (5323 hits)
(openSUSE 10.2)

svn man page (5162 hits)
(FreeBSD 6.2)

adv_cap_autoneg man page (4865 hits)
(Solaris 10 11_06)

CPAN man page (4602 hits)
(Suse Linux 10.1)

ssh man page (4337 hits)
(Suse Linux 10.1)

ssh-socks5-proxy-connect man page (2839 hits)
(Solaris 10 11_06)

netcat man page (2687 hits)
(Suse Linux 10.1)

pprosetup man page (2472 hits)
(Solaris 10 11_06)

startproc man page (2450 hits)
(Suse Linux 10.1)

signal man page (2393 hits)
(Suse Linux 10.1)

Useful Links

Go Back

Visitor Statistics


Valid XHTML 1.0 Transitional     Valid CSS!

Partners: Cambridge Plus :: PYRENEES GOLF HOLIDAYS :: Prototype Assembly Service :: <Link Available>
Unix Man Pages / Linux Man Pages :: HiFi Forum :: SIP VoIP Phone & Provider Reviews :: UNIX/Linux Forum Archives

More info on advertising on Unix/Linux Forum