msgget(2) - phpMan

Command: man perldoc info search(apropos)  


MSGGET(2)                  Linux Programmer's Manual                 MSGGET(2)



NAME
       msgget - get a message queue identifier

SYNOPSIS
       #include <sys/types.h>
       #include <sys/ipc.h>
       #include <sys/msg.h>

       int msgget(key_t key, int msgflg);

DESCRIPTION
       The  msgget()  system call returns the message queue identifier associated with the
       value of the key argument.  A new message queue is created if  key  has  the  value
       IPC_PRIVATE  or  key  isn't  IPC_PRIVATE,  no  message queue with the given key key
       exists, and IPC_CREAT is specified in msgflg.

       If msgflg specifies both IPC_CREAT and IPC_EXCL and a message queue already  exists
       for  key,  then msgget() fails with errno set to EEXIST.  (This is analogous to the
       effect of the combination O_CREAT | O_EXCL for open(2).)

       Upon creation, the least significant bits of the argument msgflg define the permis-
       sions  of the message queue.  These permission bits have the same format and seman-
       tics as the permissions specified for the mode argument of open(2).   (The  execute
       permissions are not used.)

       If a new message queue is created, then its associated data structure msqid_ds (see
       msgctl(2)) is initialised as follows:

              msg_perm.cuid and msg_perm.uid are set to the effective user ID of the call-
              ing process.

              msg_perm.cgid  and  msg_perm.gid  are  set  to the effective group ID of the
              calling process.

              The least significant 9 bits of msg_perm.mode are set to the least  signifi-
              cant 9 bits of msgflg.

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

              msg_ctime is set to the current time.

              msg_qbytes is set to the system limit MSGMNB.

       If  the  message  queue already exists the permissions are verified, and a check is
       made to see if it is marked for destruction.

RETURN VALUE
       If successful, the return value will be the message queue identifier (a nonnegative
       integer), otherwise -1 with errno indicating the error.

ERRORS
       On failure, errno is set to one of the following values:

       EACCES     A  message  queue  exists for key, but the calling process does not have
                  permission to access the queue, and  does  not  have  the  CAP_IPC_OWNER
                  capability.

       EEXIST     A  message  queue exists for key and msgflg specified both IPC_CREAT and
                  IPC_EXCL.

       ENOENT     No message queue exists for key and msgflg did not specify IPC_CREAT.

       ENOMEM     A message queue has to be created but the system does  not  have  enough
                  memory for the new data structure.

       ENOSPC     A  message  queue has to be created but the system limit for the maximum
                  number of message queues (MSGMNI) would be exceeded.

NOTES
       IPC_PRIVATE isn't a flag field but a key_t type.  If this special value is used for
       key,  the system call ignores everything but the least significant 9 bits of msgflg
       and creates a new message queue (on success).

       The following is a system limit on message queue  resources  affecting  a  msgget()
       call:

       MSGMNI     System  wide  maximum  number  of  message  queues: policy dependent (on
                  Linux, this limit can be read and modified via /proc/sys/kernel/msgmni).

BUGS
       The  name  choice  IPC_PRIVATE  was perhaps unfortunate, IPC_NEW would more clearly
       show its function.

CONFORMING TO
       SVr4, POSIX.1-2001.

LINUX NOTES
       Until version 2.3.20 Linux would return EIDRM for a msgget()  on  a  message  queue
       scheduled for deletion.

SEE ALSO
       msgctl(2), msgrcv(2), msgsnd(2), ftok(3), capabilities(7), mq_overview(7), svipc(7)



Linux 2.6.6                       2004-05-27                         MSGGET(2)

Generated by $Id: phpMan.php,v 4.54 2007/08/21 09:05:22 chedong Exp $ Author: Che Dong
On Apache/2.2.3 (CentOS)
Under GNU General Public License
2012-05-19 11:34 @172.29.30.71 CrawledBy CCBot/1.0 (+http://www.commoncrawl.org/bot.html)
Valid XHTML 1.0!Valid CSS!