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
Copyright © 2010-2024 Platon Technologies, s.r.o.           Home | Man pages | tLDP | Documents | Utilities | About
Design by styleshout