msgget(2)                                                         msgget(2)




 NAME
      msgget - get message queue

 SYNOPSIS
      #include <sys/msg.h>

      int msgget(key_t key, int msgflg);

 DESCRIPTION
      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''.

      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 low-
           order 9 bits of msgflg.

           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
      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
      msgget() fails if one or more of the following is true:





 Hewlett-Packard Company            - 1 -    HP-UX Release 10.20:  July 1996






 msgget(2)                                                         msgget(2)




      [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
      ipcrm(1), ipcs(1), msgctl(2), msgop(2), stdipc(3C).

 STANDARDS CONFORMANCE
      msgget(): SVID2, SVID3, XPG2, XPG3, XPG4


































 Hewlett-Packard Company            - 2 -    HP-UX Release 10.20:  July 1996