msgget(2)


msgget -- get message queue

Synopsis

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

int msgget(key_t key, int msgflg);

Description

msgget returns the message queue identifier associated with key. This identifier is accessible by any process in the system, subject to normal access restrictions and the permissions set with msgflg.

A successful call to msgget does not imply access to the queue in question, only a successful name mapping from key to ID.

A message queue identifier and associated message queue and data structure [see intro(2)] are created for key if one of the following are true:

On creation, the data structure associated with the new message queue identifier is initialized as follows:

Return values

On success, msgget returns a non-negative integer, namely a message queue identifier. On failure, msgget returns -1 and sets errno to identify the error.

Errors

In the following conditions, msgget fails and sets errno to:

EACCES
A message queue identifier exists for key, but the queue was not created supporting the specified operation permissions.

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) and (msgflg&IPC_EXCL) are both true.

References

intro(2), msgctl(2), msgop(2), stdipc(3C)
© 2004 The SCO Group, Inc. All rights reserved.
UnixWare 7 Release 7.1.4 - 25 April 2004