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

  man pages->HP-UX 11i man pages -> msgget (2)              
Title
Content
Arch
Section
 

Contents


 msgget(2)                                                         msgget(2)




 NAME    [Toc]    [Back]
      msgget - get message queue

 SYNOPSIS    [Toc]    [Back]
      #include <sys/msg.h>

      int msgget(key_t key, int msgflg);

 DESCRIPTION    [Toc]    [Back]
      msgget() returns the message queue identifier associated with key.

      A message queue identifier and associated message queue and data
      structure are created for key if one of the following is true:

           key is equal to IPC_PRIVATE.  This call creates a new identifier,
           subject to available resources.  The identifier will never be
           returned by another call to msgget() until it has been released
           by a call to msgctl().  The identifier should be used among the
           calling process and its descendents; however, it is not a
           requirement.  The resource can be accessed by any process having
           the proper permissions.

           key does not already have a message queue identifier associated
           with it, and (msgflg & IPC_CREAT) is ``true''.

           On creation of a new queue, queue sizes above 64Kbytes can only
           be constructed when the application is compiled with the
           __BIGMSGQUEUE_ENABLED flag defined either explicitly with a
           #define in the source or with -D__BIGMSGQUEUE_ENABLED at compile
           time.

           WARNING: Programs compiled on HP-UX revisions prior to 11i
           Version 1 use old 16-bit msqid_ds structure fields (obtained via
           IPC_STAT of the msgctl(2) system call) which can describe queue
           sizes only up to 64KBytes.  Care must be taken such that queues
           shared with such programs are not made larger than 64KBytes
           (i.e., that __BIGMSGQUEUE_ENABLED is not specified when compiling
           the caller of msgget).  Or, those existing programs should be
           recompiled.  Or, the system administrator should restrict the
           MSGMNB kernel tunable parameter to 64KBytes or less.

      Upon creation, the data structure associated with the new message
      queue identifier is initialized as follows:

           msg_perm.cuid, msg_perm.uid, msg_perm.cgid, and msg_perm.gid are
           set equal to the effective user ID and effective group ID,
           respectively, of the calling process.

           The low-order 9 bits of msg_perm.mode are set equal to the loworder
 9 bits of msgflg.




 Hewlett-Packard Company            - 1 -   HP-UX 11i Version 2: August 2003






 msgget(2)                                                         msgget(2)




           msg_qnum, msg_lspid, msg_lrpid, msg_stime, and msg_rtime are set
           equal to 0.

           msg_ctime is set equal to the current time.

           msg_qbytes is set equal to the system limit.

 RETURN VALUE    [Toc]    [Back]
      Upon successful completion, a non-negative integer, namely a message
      queue identifier, is returned.  Otherwise, a value of -1 is returned
      and errno is set to indicate the error.

 ERRORS    [Toc]    [Back]
      msgget() fails if one or more of the following is true:

      [EACCES]       A message queue identifier exists for key, but
                     operation permission as specified by the low-order 9
                     bits of msgflg would not be granted.

      [ENOENT]       A message queue identifier does not exist for key and
                     (msgflg & IPC_CREAT) is ``false''.

      [ENOSPC]       A message queue identifier is to be created but the
                     system-imposed limit on the maximum number of allowed
                     message queue identifiers system wide would be
                     exceeded.

      [EEXIST]       A message queue identifier exists for key but ((msgflg
                     & IPC_CREAT) && (msgflg & IPC_EXCL)) is ``true''.

 SEE ALSO    [Toc]    [Back]
      ipcrm(1), ipcs(1), msgctl(2), msgop(2), stdipc(3C).

 STANDARDS CONFORMANCE    [Toc]    [Back]
      msgget(): SVID2, SVID3, XPG2, XPG3, XPG4


 Hewlett-Packard Company            - 2 -   HP-UX 11i Version 2: August 2003
[ 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)
mq_send Tru64 Places a message in the message queue (P1003.1b)
mq_send HP-UX send a message to a message queue
msgrcv FreeBSD receive a message from a message queue
msgsnd FreeBSD send a message to a message queue
mq_receive HP-UX receive a message from a message queue
msgrcv OpenBSD receive a message from a message queue
msgsnd OpenBSD send a message to a message queue
msgrcv NetBSD receive a message from a message queue
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service