">
ÈÌß
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.