msgget(2) msgget(2)NAME msgget - gets 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 is 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''. The key IPC_PRIVATE will create an identifier and associated data structure that is unique to the calling process and its children. 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. 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. STATUS MESSAGES AND VALUES 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. January 1992 1
msgget(2) msgget(2)The msgget command will fail if one or more of the following is 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. 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) && (msgflg & IPC_EXCL)) is ``true.'' SEE ALSO intro(2), msgctl(2), msgop(2) 2 January 1992