|
|
1.1 ! root 1: ! 2: ! 3: msgget() COHERENT System Call msgget() ! 4: ! 5: ! 6: ! 7: ! 8: Get message queue ! 9: ! 10: #include <sys/msg.h> ! 11: mmssggggeett(_k_e_y, _m_s_g_f_l_g) ! 12: kkeeyy_tt _k_e_y; iinntt _m_s_g_f_l_g; ! 13: ! 14: msgget returns the message queue identifier associated with key, ! 15: should it exist. If key has no message queue associated with it, ! 16: msgget checks whether (_m_s_g_f_l_g & IIPPCC_CCRREEAATT) is true; if it is, ! 17: then msgget creates a message queue identifier and associated ! 18: message queue and data structure for _k_e_y. ! 19: ! 20: Upon creation, the data structure associated with the new message ! 21: queue identifier is initialized as follows: ! 22: ! 23: * msg_perm.cuid, msg_perm.uid, msg_perm.cgid, and msg_perm.gid ! 24: are set to, respectively, the effective user identifier and ! 25: effective group identifier of the calling process. ! 26: ! 27: * The low-order nine bits of msg_perm.mode are set to the low- ! 28: order nine bits of msgflg. These nine bits define access per- ! 29: missions: the top three bits specify the owner's access per- ! 30: missions (read, write, execute), the middle three bits specify ! 31: the owning group's access permissions, and the low three bits ! 32: specify access permissions for others. ! 33: ! 34: * msg_ctime is set to the current time. ! 35: ! 36: * msg_qbytes is set equal to the system limit, as defined by the ! 37: kernel variable NMSQB. ! 38: ! 39: msgget fails if any of the following is true. The term within ! 40: parentheses gives the value to which msgget sets errno, as ! 41: defined in the header file errno.h: ! 42: ! 43: * A message queue identifier exists for key but operation per- ! 44: mission as specified by the low-order nine bits of msgflg ! 45: would not be granted (EEAACCCCEESS). ! 46: ! 47: * A message queue identifier does not exist for key and (_m_s_g_f_l_g ! 48: & IIPPCC_CCRREEAATT) is false (EENNOOEENNTT). ! 49: ! 50: * A message queue identifier is to be created but the number of ! 51: message queue identifiers system-wide exceeds the system limit ! 52: as specified in the kernel variable NMSQID (EENNOOSSPPCC). ! 53: ! 54: * A message queue identifier exists for key, but ((_m_s_g_f_l_g & ! 55: IIPPCC_CCRREEAATT) && (_m_s_g_f_l_g & IIPPCC_EEXXCCLL)) is true (EEEEXXIISSTT). ! 56: ! 57: ***** Return Value ***** ! 58: ! 59: Upon successful completion, msgget returns the message-queue ! 60: identifier, which is always a non-negative integer. Otherwise, ! 61: it returns -1 and sets eerrrrnnoo to an appropriate value. ! 62: ! 63: ! 64: COHERENT Lexicon Page 1 ! 65: ! 66: ! 67: ! 68: ! 69: msgget() COHERENT System Call msgget() ! 70: ! 71: ! 72: ! 73: ! 74: ***** Files ***** ! 75: ! 76: /usr/include/sys/ipc.h ! 77: /usr/include/sys/msg.h ! 78: /dev/msg ! 79: ! 80: ***** See Also ***** ! 81: ! 82: COHERENT system calls, msg, msgctl(), msgrcv(), msgsnd() ! 83: ! 84: ***** Notes ***** ! 85: ! 86: To improve portability, the mmssgg functions are presently im- ! 87: plemented as a device driver rather than as an actual system ! 88: call. ! 89: ! 90: ! 91: ! 92: ! 93: ! 94: ! 95: ! 96: ! 97: ! 98: ! 99: ! 100: ! 101: ! 102: ! 103: ! 104: ! 105: ! 106: ! 107: ! 108: ! 109: ! 110: ! 111: ! 112: ! 113: ! 114: ! 115: ! 116: ! 117: ! 118: ! 119: ! 120: ! 121: ! 122: ! 123: ! 124: ! 125: ! 126: ! 127: ! 128: ! 129: ! 130: COHERENT Lexicon Page 2 ! 131: ! 132:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.