msgget(3)
NAME
msgget - get message queue
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <sys/types.h> #include <sys/ipc.h> #include <sys/msg.h> int msgget(key_t key, int msgflg);
DESCRIPTION
- The msgget() function 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 asso
- ciated with it
(the msqid_ds structure, see msgctl(3)) 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
- Upon successful completion a positive message queue identi
- fier is
returned. Otherwise, -1 is returned and the global variable - errno is set
to indicate the error.
ERRORS
- [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
msgctl(3), msgrcv(3), msgsnd(3)
HISTORY
- Message queues appeared in the first release of AT&T System
- V UNIX.
- BSD August 17, 1995