|
|||||||
|
|
MSGOPSection: Linux Programmer's Manual (2)Updated: 10 July 2000 Index Return to Main Contents ̾Á°msgop - ¥á¥Ã¥»¡¼¥¸(message)Áàºî½ñ¼°# include <sys/types.h> int msgsnd ( int msqid, struct msgbuf *msgp, size_t msgsz, int msgflg ) ssize_t msgrcv ( int msqid, struct msgbuf *msgp, size_t msgsz, long msgtyp, int msgflg ) ÀâÌÀ¥á¥Ã¥»¡¼¥¸(message)¤òÁ÷¤Ã¤¿¤ê¼õ¤±¤¿¤ê¤¹¤ë¤¿¤á¤Ë ¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ï°Ê²¼¤Î¤è¤¦¤Ê¹½Â¤ÂΤò³ä¤êÅö¤Æ¤ë¡£
struct msgbuf {
¤·¤«¤·¡¢ÇÛÎó ¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ï¥á¥Ã¥»¡¼¥¸¤òÁ÷¤ë¤¿¤á¤Ë¤Ï¥¥å¡¼(queue)¤Ø¤Î ½ñ¤¹þ¤ßµö²Ä¤ò¡¢¥á¥Ã¥»¡¼¥¸¤ò¼õ¤±¤ë¤¿¤á¤Ë¤Ï¥¥å¡¼¤Ø¤ÎÆÉ¤ß¹þ¤ßµö²Ä¤ò »ý¤¿¤Ê¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ msgsnd ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï msgp °ú¤¿ô¤Ç»ØÄꤵ¤ì¤¿¥á¥Ã¥»¡¼¥¸¤Î¥³¥Ô¡¼¤ò msqid °ú¤¿ô¤ÎÃͤǻØÄꤵ¤ì¤¿¥á¥Ã¥»¡¼¥¸¡¦¥¥å¡¼¤ØÆþ¤ì¤ë¡£ msgflg °ú¤¿ô¤Ï¡¢¿·¤·¤¤¥á¥Ã¥»¡¼¥¸¤ò¥¥å¡¼¤ËÆþ¤ì¤ë¤Î¤Ë¥¥å¡¼¤Ë msg_qbytes ¤è¤ê¿¤¯¤¬É¬Íפʾì¹ç¤Îưºî¤ò»ØÄꤹ¤ë¡£ IPC_NOWAIT ¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢¥á¥Ã¥»¡¼¥¸¤ÏÁ÷¤é¤ì¤º¡¢¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï¼ºÇÔ¤·¤Æ errno ¤Ë EAGAIN ¤òÀßÄꤷ¤ÆÊÖ¤µ¤ì¤ë¡£¤½¤¦¤Ç¤Ê¤ì¤Ð¡¢¤½¤Î¤è¤¦¤Ê¾õ¶·¤¬¤Ê¤¯¤Ê¤ë¤«¡¢ ¥¥å¡¼¤¬ºï½ü¤µ¤ì¤ë¤«¡¢¥×¥í¥»¥¹¤¬Êá³Í(catch)¤¹¤Ù¤¥·¥°¥Ê¥ë(signal)¤ò ¼õ¤±¤ë¤Þ¤Ç¡¢¥×¥í¥»¥¹(process)¤Î¼Â¹Ô¤òÄä»ß(suspend)¤¹¤ë¡£ (Ää»ß¤¹¤ë¤è¤¦¤Ê¾õ¶·¤¬¤Ê¤¯¤Ê¤ì¤Ð¥á¥Ã¥»¡¼¥¸¤¬Á÷¤é¤ì¤Æ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï À®¸ù¤¹¤ë¡¢¥¥å¡¼¤¬ºï½ü¤µ¤ì¤¿¾ì¹ç¤Ï¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï¼ºÇÔ¤· errno ¤Ë EIDRM ¤¬ÀßÄꤵ¤ì¤ë¡¢¥·¥°¥Ê¥ë¤ò¼õ¤±¤È¤Ã¤¿¾ì¹ç¤Ï¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï¼ºÇÔ¤· errno ¤Ë EINTR ¤¬ÀßÄꤵ¤ì¤ë¡£) ´°Á´¤ËÀ®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï¥á¥Ã¥»¡¼¥¸¡¦¥¥å¡¼¡¦¥Ç¡¼¥¿¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤Ë ¹¹¿·¤µ¤ì¤ë:
msgrcv ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï msqid ¤Ç»ØÄꤷ¤¿¥á¥Ã¥»¡¼¥¸¡¦¥¥å¡¼¤«¤é msgp °ú¤¿ô¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤¿ msgbuf ¹½Â¤ÂΤؤȥá¥Ã¥»¡¼¥¸¤òÆÉ¤ß¤È¤ê¡¢À®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï¡¢¥¥å¡¼¤«¤éÆÉ¤ó¤À ¥á¥Ã¥»¡¼¥¸¤òºï½ü¤¹¤ë¡£ msgsz °ú¤¿ô¤Ë¤Ï msgp °ú¤¿ô¤Ç»ØÄꤵ¤ì¤¿¹½Â¤ÂΤΠmtext ¥á¥ó¥Ð¡¼¤ÎºÇÂç¤Î¥Ð¥¤¥È¿ô¤ò»ØÄꤹ¤ë¡£ ¤â¤·¥á¥Ã¥»¡¼¥¸¤Î¥Æ¥¥¹¥È¤ÎŤµ¤¬ msgsz ¤è¤êÂ礤¤¾ì¹ç¤Ë¤Ï¡¢ msgflg ¤Ë MSG_NOERROR ¤¬»ØÄꤵ¤ì¤Æ¤¤¤ì¤Ð¥á¥Ã¥»¡¼¥¸¤Î¥Æ¥¥¹¥È¤ÏÀÚ¤êµÍ¤á¤é¤ì¤ë¡¢ ¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¥á¥Ã¥»¡¼¥¸¤Ï¥¥å¡¼¤«¤éºï½ü¤µ¤ì¤º¡¢ ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ï¼ºÇÔ¤· errno ¤Ë E2BIG ¤¬ÀßÄꤵ¤ì¤ë¡£ msgtyp °ú¤¿ô¤ÏÍ׵ᤷ¤¿¥á¥Ã¥»¡¼¥¸¤Î·¿(type)¤ò°Ê²¼¤Î¤è¤¦¤ËÍ¿¤¨¤ë:
msgflg °ú¤¿ô¤Ë¤Ï°Ê²¼¤Î¥Õ¥é¥°¤ò 0, 1, Ê£¿ô¤ò(¤½¤ì¤é¤Î OR¤Ç)Í¿¤¨¤ë:
Í׵ᤵ¤ì¤¿·¿¤Î¥á¥Ã¥»¡¼¥¸¤¬Â¸ºß¤»¤º¡¢ msgflg ¤Ë IPC_NOWAIT ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¾ì¹ç¡¢°Ê²¼¤Î¾õ¶·¤¬µ¯¤¤ë¤Þ¤Ç¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ï Ää»ß(block)¤¹¤ë:
´°Á´¤ËÀ®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï¥á¥Ã¥»¡¼¥¸¡¦¥¥å¡¼¡¦¥Ç¡¼¥¿¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤Ë ¹¹¿·¤µ¤ì¤ë:
ÊÖ¤êÃͼºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï¤É¤Á¤é¤Î´Ø¿ô¤â -1 ¤òÊÖ¤·¡¢¥¨¥é¡¼¤ò errno ¤Ë»Ø¼¨¤¹¤ë¡£¤½¤¦¤Ç¤Ê¤ì¤Ð msgsnd ¤Ï 0 ¤òÊÖ¤·¡¢ msgrvc ¤Ï ¼ÂºÝ¤Ë mtext ÇÛÎó¤Ë ¥³¥Ô¡¼¤·¤¿¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£¥¨¥é¡¼msgsnd ¤¬¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï errno ¤Ë°Ê²¼¤ÎÃͤΤɤ줫¤òÀßÄꤷ¤ÆÊÖ¤µ¤ì¤ë:
msgrcv ¤¬¼ºÇÔ¤·¤¿¾ì¹ç¤Ë¤Ï errno ¤Ë°Ê²¼¤ÎÃͤΤɤ줫¤òÀßÄꤷ¤ÆÊÖ¤µ¤ì¤ë:
Ãí°Õ°Ê²¼¤Ï msgsnd ¥·¥¹¥Æ¥à¡¦¥³¡¼¥ë¤Ë±Æ¶Á¤¹¤ë¥·¥¹¥Æ¥àÀ©¸Â¤Ç¤¢¤ë:
¸½ºß¤Î¼ÂÁõ¤Ç¤Ï¡¢¥·¥¹¥Æ¥àÁ´ÂΤΥá¥Ã¥»¡¼¥¸¡¦¥Ø¥Ã¥À¡¼¤Î¿ô (MSGTQL) ¤È¡¢¥·¥¹¥Æ¥àÁ´ÂΤΥá¥Ã¥»¡¼¥¸¡¦¥×¡¼¥ë¤ÎºÇÂç¥Ð¥¤¥È¿ô (MSGPOOL) ¤Ë¸Çͤξå¸Â¤Ï¤Ê¤¤¡£ ½àµòSVr4, SVID.Ãí°Õ¥Ý¥¤¥ó¥¿°ú¤¿ô¤Ï libc4, libc5, glibc 2.0, glibc 2.1 ¤Ç¤Ï struct msgbuf * ¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤ë¡£glibc 2.2 ¤Ç¤Ï SUSv2 ¤Ë½¾¤Ã¤Æ void * (msgsnd() ¤Ç¤Ï const void *) ¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤ë¡£´ØÏ¢¹àÌÜipc(5), msgctl(2), msgget(2), msgrcv(2), msgsnd(2)
Index | ||||||
|
|
|
Home :: Copyright :: Privacy :: Credits :: Get a free Linuxinfor Email Account Document on this page is part of "Linuxinfor Man Pages in HTML Format: man2". See Index Page for more info about Authorship and Copyright. 1999-2008 Linuxinfor.com. No rights reserved. |