Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ msgget(2) — CX/UX 6.20

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

intro(2)

msgctl(2)

msgop(2)

stdipc(3C)

msgget(2)  —  AT&T SYSTEM V

NAME

msgget − get message queue

SYNOPSIS

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

int msgget (key, msgflg)
key_t key;
int msgflg;

DESCRIPTION

msgget returns the message queue identifier associated with key.

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:

Key is equal to IPC_PRIVATE. 

Key does not already have a message queue identifier associated with it, and (msgflg & IPC_CREAT) is “true”. 

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

Msg_perm.cuid, msg_perm.uid, msg_perm.cgid, and msg_perm.gid are set equal to the effective user ID and effective group ID, respectively, of the calling process. 
Since the effective group ID of the calling process specifies the classification level (security label) to be associated with an object, the message queue is labeled with the user’s current level. (B1 only)

The low-order 9 bits of msg_perm.mode are set equal to the low-order 9 bits of msgflg.

Msg_qnum, msg_lspid, msg_lrpid, msg_stime, and msg_rtime are set equal to 0. 

Msg_ctime is set equal to the current time. 

Msg_qbytes is set equal to the system limit. 

msgget will fail if one or more of the following are true:

­[EACCES] A message queue identifier exists for key, but operation permission [see intro(2)] as specified by the low-order 9 bits of msgflg would not be granted. 

­[EACCES] A message queue identifier exists for key, but the process’s current level does not dominate the level of the message queue. (B1 only)

­[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 & (to imply a logical rather than a bitwise ’and’) IPC_CREAT) & (msgflg & IPC_EXCL)) is “true”. 

SEE ALSO

intro(2), msgctl(2), msgop(2), stdipc(3C). 

DIAGNOSTICS

Upon successful completion, a non-negative integer, namely a message queue identifier, is returned.  Otherwise, a value of −1 is returned and errno is set to indicate the error. 

CX/UX Programmer’s Reference Manual

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026