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

  man pages->OpenBSD man pages -> msgget (2)              
Title
Content
Arch
Section
 

MSGGET(2)

Contents


NAME    [Toc]    [Back]

     msgget - get message queue

SYNOPSIS    [Toc]    [Back]

     #include <sys/types.h>
     #include <sys/ipc.h>
     #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  is a unique integer greater than
zero.

     A message queue  is  created  if  either  key  is  equal  to
IPC_PRIVATE, or key
     does not have a message queue identifier associated with it,
and the
     IPC_CREAT bit is set in msgflg.

     If a new message queue is created, the data structure  associated with it
     (the  msqid_ds  structure,  see msgctl(2)) is initialized as
follows:

     +o   msg_perm.cuid and msg_perm.uid are set to the  effective
UID of the
         calling process.

     +o    msg_perm.gid and msg_perm.cgid are set to the effective
GID of the
         calling process.

     +o   msg_perm.mode is set to the lower 9 bits of msgflg.

     +o   msg_cbytes, msg_qnum, msg_lspid,  msg_lrpid,  msg_rtime,
and msg_stime
         are set to 0

     +o    msg_qbytes  is set to the system wide maximum value for
the number of
         bytes in a queue (MSGMNB).

     +o   msg_ctime is set to the current time.

RETURN VALUES    [Toc]    [Back]

     Upon successful completion a positive message queue  identifier is returned.
   Otherwise,  -1 is returned and the global variable
errno is set
     to indicate the error.

ERRORS    [Toc]    [Back]

     [EACCES]      A message queue is already associated with key
and the
                   caller has no permission to access it.

     [EEXIST]      Both IPC_CREAT and IPC_EXCL are set in msgflg,
and a message
 queue is already associated with key.

     [ENOSPC]      A new message queue could not be  created  because the system
                   limit  for  the  number  of message queues has
been reached.

     [ENOENT]      IPC_CREAT was not set in msgflg and no message
queue associated
 with key was found.

SEE ALSO    [Toc]    [Back]

      
      
     msgctl(2), msgrcv(2), msgsnd(2), ftok(3)

HISTORY    [Toc]    [Back]

     Message  queues  appeared  in the first release of AT&T Unix
System V.

OpenBSD     3.6                         August      17,      1995
[ 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