|
éíñ
msgget - coÚÄaeÔ oÞepeÄØ cooÂÝeÎÉÊ
óéîôáëóéó
#include <sys/types.h> #include <sys/ipc.h> #include <sys/msg.h> int msgget (key, msgflg) key_t key; int msgflg;
ïðéóáîéå
msgget ÄÌÑ ÚaÄaÎÎoÇo key ×oÚ×paÝaeÔ ÉÄeÎÔÉÆÉËaÔop oÞepeÄÉ
cooÂÝeÎÉÊ.
éÄeÎÔÉÆÉËaÔop oÞepeÄÉ cooÂÝeÎÉÊ, c×ÑÚaÎÎÙe c ÎÉÍ oÞepeÄØ É cÔpyËÔypa ÄaÎÎÙx (cÍ. intro(3)) coÚÄaÀÔcÑ ÄÌÑ ÄaÎÎoÇo key, ecÌÉ ×ÙÐoÌÎÑeÔcÑ oÄÎo ÉÚ cÌeÄyÀÝÉx ycÌo×ÉÊ:
key pa×eÎ IPC_PRIVATE. key Îe ÉÍeeÔ c×ÑÚaÎÎoÇo c ÎÉÍ ÉÄeÎÔÉÆÉËaÔopa oÞepeÄÉ cooÂÝeÎÉÊ É (msgflg&IPC_CREAT) oÔÌÉÞÎo oÔ ÎyÌÑ.
ðoÌÑ cÔpyËÔypÙ ÄaÎÎÙx, c×ÑÚaÎÎoÊ c Îo×ÙÍ ÉÄeÎÔÉÆÉËaÔopoÍ oÞepeÄÉ cooÂÝeÎÉÊ, ÉÎÉÃÉaÌÉÚÉpyÀÔcÑ cÌeÄyÀÝÉÍ oÂpaÚoÍ:
msg_perm.cuid É msg_perm.uid ycÔaÎa×ÌÉ×aÀÔcÑ pa×ÎÙÍÉ ÜÆÆeËÔÉ×ÎoÍy ÐoÌØÚo×aÔeÌØcËoÍy ID ÔeËyÝeÇo ÐpoÃecca. msg_perm.cgid É msg_perm.gid ycÔaÎa×ÌÉ×aÀÔcÑ pa×ÎÙÍÉ ÜÆÆeËÔÉ×ÎoÍy ÇpyÐÐo×oÍy ID ÔeËyÝeÇo ÐpoÃecca. MÌaÄÛÉe 9 ÂÉÔ msg_perm.mode ycÔaÎa×ÌÉ×aÀÔcÑ pa×ÎÙÍÉ ÍÌaÄÛÉÍ 9-ÔÉ ÂÉÔaÍ msgflg. msg_qnum, msg_lspid, msg_lrpid É msg_rtime ycÔaÎa×ÌÉ×aÀÔcÑ pa×ÎÙÍÉ 0. msg_ctime ycÔaÎa×ÌÉ×aeÔcÑ pa×ÎÙÍ ÔeËyÝeÍy ×peÍeÎÉ. msg_qbytes ycÔaÎa×ÌÉ×aeÔcÑ pa×ÎÙÍ cÉcÔeÍÎoÍy oÇpaÎÉÞeÎÉÀ.
msgget a×apÉÊÎo Úa×epÛaeÔcÑ, ecÌÉ ×ÙÐoÌÎÑeÔcÑ xoÔÑ ÂÙ oÄÎo ÉÚ cÌeÄyÀÝÉx ycÌo×ÉÊ:
[EACCES] | éÄeÎÔÉÆÉËaÔop oÞepeÄÉ cooÂÝeÎÉÊ cyÝecÔ×yeÔ ÄÌÑ key, Îo Ðpa×a, ÚaÄaÎÎÙe ÍÌaÄÛÉÍÉ 9-ØÀ ÂÉÔaÍÉ msgflg, Îe ÍoÇyÔ ÂÙÔØ ÐpeÄocÔa×ÌeÎÙ (cÍ. intro(3)). |
---|---|
[ENOENT] | éÄeÎÔÉÆÉËaÔop oÞepeÄÉ cooÂÝeÎÉÊ Îe cyÝecÔ×yeÔ ÄÌÑ key É (msgflg&IPC_CREAT) pa×Îo 0. |
[ENOSPC] | éÄeÎÔÉÆÉËaÔop oÞepeÄÉ cooÂÝeÎÉÊ Îe ÍoÖeÔ ÂÙÔØ coÚÄaÎ ××ÉÄy oÇpaÎÉÞeÎÉÑ Îa oÂÝee ÞÉcÌo ÔaËÉx ÉÄeÎÔÉÆÉËaÔopo× × cÉcÔeÍe. |
[EEXIST] | éÄeÎÔÉÆÉËaÔop oÞepeÄÉ cooÂÝeÎÉÊ cyÝecÔ×yeÔ ÄÌÑ key, Îo (msgflg&IPC_CREAT)&(msgflg&IPC_EXCL) oÔÌÉÞÎo oÔ 0. |
BOú÷PAýAEíOE úîAþEîéE
B cÌyÞae ycÐeÛÎoÇo Úa×epÛeÎÉÑ ×oÚ×paÝaeÔcÑ ÉÄeÎÔÉÆÉËaÔop
oÞepeÄÉ cooÂÝeÎÉÊ ËaË ÎeoÔpÉÃaÔeÌØÎoe ÃeÌoe ÞÉcÌo. éÎaÞe
×oÚ×paÝaeÔcÑ ÚÎaÞeÎÉe -1 É × errno ÚaÎocÉÔcÑ ËoÄ oÛÉÂËÉ.
óí. ôáëöå
intro(3), msgctl(3), msgop(3)
úAíEþAîéñ
ðpoÇpaÍÍa, ÉcÐoÌØÚyÀÝaÑ ÜÔy ÆyÎËÃÉÀ, ÄoÌÖÎa ËoÍÐÉÌÉpo×aÔØcÑ
c ÆÌaÇoÍ -Me.
|