mq_open

Autres langues

Langue: ja

Version: 2006-02-25 (openSuse - 09/10/07)

Autres sections - même nom

Section: 3 (Bibliothèques de fonctions)

̾Á°

mq_open - ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤ò¥ª¡¼¥×¥ó¤¹¤ë

½ñ¼°


#include <mqueue.h>



mqd_t mq_open(const char *name, int oflag);

mqd_t mq_open(const char *name, int oflag, mode_t mode,

              struct mq_attr *attr);

ÀâÌÀ

mq_open() ¤Ï¡¢¿·¤·¤¤ POSIX ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤òºîÀ®¤¹¤ë¤«¡¢´û¸¤Î¥­¥å¡¼¤ò ¥ª¡¼¥×¥ó¤¹¤ë¡£¥­¥å¡¼¤Ï name ¤Ç¼±Ê̤µ¤ì¤ë¡£ name ¤Î¹½À®¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï mq_overview (7) ¤ò»²¾È¡£

oflag °ú¤­¿ô¤Ë¤Ï¡¢´Ø¿ô¸Æ¤Ó½Ð¤·¤ÎÁàºî¤òÀ©¸æ¤¹¤ë¥Õ¥é¥°¤ò»ØÄꤹ¤ë¡£ oflag ¤Ë¤Ï¡¢°Ê²¼¤Î¤¦¤Á¤¤¤º¤ì¤«°ì¤Ä¤òɬ¤º»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

O_RDONLY
¥á¥Ã¥»¡¼¥¸¤Î¼õ¿®ÀìÍѤȤ·¤Æ¥­¥å¡¼¤ò¥ª¡¼¥×¥ó¤¹¤ë¡£
O_WRONLY
¥á¥Ã¥»¡¼¥¸¤ÎÁ÷¿®ÀìÍѤȤ·¤Æ¥­¥å¡¼¤ò¥ª¡¼¥×¥ó¤¹¤ë¡£
O_RDWR
¥á¥Ã¥»¡¼¥¸¤ÎÁ÷¼õ¿®Î¾ÍѤȤ·¤Æ¥­¥å¡¼¤ò¥ª¡¼¥×¥ó¤¹¤ë¡£

0 ¸Ä°Ê¾å¤Î²¼µ­¤Î¥Õ¥é¥°¤ò¡¢¥Ó¥Ã¥Èñ°Ì¤Î OR (ÏÀÍýÏÂ) ¤Ç oflag ¤ËÄɲäǻØÄê¤Ç¤­¤ë¡£

O_NONBLOCK
ÈóÄä»ß (non-blocking) ¥â¡¼¥É¤Ç¥­¥å¡¼¤ò¥ª¡¼¥×¥ó¤¹¤ë¡£ mq_receive(3) ¤È mq_send(3) ¤Ï¡¢Ä̾ï¤ÏÄä»ß (block) ¤¹¤ë¾õ¶·¤Ë¤ª¤¤¤Æ¡¢¥¨¥é¡¼ EAGAIN ¤Ç¼ºÇÔ¤¹¤ë¤è¤¦¤Ë¤Ê¤ë¡£
O_CREAT
¸ºß¤·¤Ê¤¤¾ì¹ç¡¢¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤òºîÀ®¤¹¤ë¡£ ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Î½êÍ­¼Ô (¥æ¡¼¥¶ ID) ¤È¥°¥ë¡¼¥×½êÍ­¸¢ (¥°¥ë¡¼¥× ID) ¤Ï¡¢ ¤½¤ì¤¾¤ì¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶ ID ¤È¼Â¸ú¥°¥ë¡¼¥× ID ¤ËÀßÄꤵ¤ì¤ë¡£
O_EXCL
O_CREAT ¤¬ oflag ¤Ë»ØÄꤵ¤ì¡¢¤«¤Ä»ØÄꤵ¤ì¤¿Ì¾Á° name ¤ò»ý¤Ä¥­¥å¡¼¤¬¤¹¤Ç¤Ë¸ºß¤¹¤ë¾ì¹ç¡¢¥¨¥é¡¼ EEXIST ¤Ç¼ºÇÔ¤¹¤ë¡£

oflag ¤Ë O_CREAT ¤ò»ØÄꤹ¤ë¾ì¹ç¡¢ÄÉ²Ã¤Ç 2¤Ä¤Î°ú¤­¿ô¤òÍ¿¤¨¤ëɬÍפ¬¤¢¤ë¡£ mode °ú¤­¿ô¤Ï¡¢¿·¤·¤¤¥­¥å¡¼¤ËŬÍѤµ¤ì¤ëµö²ÄÀßÄê (permission) ¤ò¡¢ open(2) ¤ÈƱ¤¸¤è¤¦¤Ë»ØÄꤹ¤ë¡£ µö²ÄÀßÄê¤Ï¥×¥í¥»¥¹¤Î umask ¤Ç¥Þ¥¹¥¯¤µ¤ì¤ë¡£ attr °ú¤­¿ô¤Ï¡¢¥­¥å¡¼¤Î°À­¤ò»ØÄꤹ¤ë¡£¾ÜºÙ¤Ï¡¢ mq_getattr(2) ¤ò»²¾È¡£ attr ¤¬ NULL ¤Î¾ì¹ç¡¢¥­¥å¡¼¤Ï¼ÂÁõ¤ÇÄêµÁ¤µ¤ì¤¿¥Ç¥Õ¥©¥ë¥È°À­¤ÇºîÀ®¤µ¤ì¤ë¡£

ÊÖ¤êÃÍ

À®¸ù¤¹¤ë¤È¡¢ mq_open() ¤Ï¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò»Ò (message queue descriptor) ¤òÊÖ¤¹¡£ ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò»Ò¤Ï¾¤Î¥á¥Ã¥»¡¼¥¸¥­¥å¡¼´ØÏ¢¤Î´Ø¿ô¤Ç»ÈÍѤµ¤ì¤ë¡£ ¥¨¥é¡¼¤Î¾ì¹ç¡¢ mq_open() ¤Ï (mqd_t) -1 ¤òÊÖ¤·¡¢ errno ¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£

¥¨¥é¡¼

EACCES
¥­¥å¡¼¤Ï¸ºß¤¹¤ë¤¬¡¢¸Æ¤Ó½Ð¤·¸µ¤¬»ØÄꤵ¤ì¤¿¥â¡¼¥É¤Ç¤½¤Î¥­¥å¡¼ ¤ò¥ª¡¼¥×¥ó¤¹¤ëµö²Ä¤ò»ý¤¿¤Ê¤¤¡£
EINVAL
oflag ¤Ë O_CREAT ¤¬»ØÄꤵ¤ì¡¢¤«¤Ä attr ¤¬ NULL °Ê³°¤À¤¬¡¢ attr->mq_maxmsg ¤« attr->mq_msqsize ¤¬ÉÔÀµ¤Ç¤¢¤Ã¤¿¡£ ¤³¤ì¤é¤Î¥Õ¥£¡¼¥ë¥É¤ÏξÊý¤È¤â 0 ¤è¤êÂ礭¤¯¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ ¥×¥í¥»¥¹¤¬Æø¢¤ò»ý¤¿¤Ê¤¤ (CAP_SYS_RESOURCE ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤¿¤Ê¤¤) ¾ì¹ç¡¢ attr->mq_maxmsg ¤È attr->mq_msgsize ¤Ï¡¢¤½¤ì¤¾¤ì¾å¸Â msg_max¡¢ msgsize_max °Ê²¼¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ ¤Þ¤¿¡¢Æø¢¥×¥í¥»¥¹¤Î¾ì¹ç¤Ç¤â¡¢ attr->mq_maxmsg ¤Ï HARD_MAX ¾å¸Â¤òĶ¤¨¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£ (¤³¤ì¤é¤Î¾å¸Â¤Ë´Ø¤¹¤ë¾ÜºÙ¤Ï mq_overview(7) ¤ò»²¾È¡£)
EEXIST
oflag ¤Ë O_CREAT ¤È O_EXCL ¤ÎξÊý¤¬»ØÄꤵ¤ì¤¿¤¬¡¢»ØÄꤵ¤ì¤¿Ì¾Á° name ¤ò»ý¤Ä¥­¥å¡¼¤¬¤¹¤Ç¤Ë¸ºß¤¹¤ë¡£
EMFILE
¤½¤Î¥×¥í¥»¥¹¤¬¥ª¡¼¥×¥ó¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤È¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Î¿ô¤¬ ¥×¥í¥»¥¹Ëè¤Î¾å¸Â¤Ë㤷¤Æ¤¤¤ë¡£
ENAMETOOLONG
name ¤¬Ä¹¤¹¤®¤ë¡£
ENFILE
¥·¥¹¥Æ¥àÁ´ÂΤǥª¡¼¥×¥ó¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤È¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Î¹ç·×¿ô¤¬ ¥·¥¹¥Æ¥à¾å¸Â¤Ë㤷¤Æ¤¤¤ë¡£
ENOENT
O_CREAT ¥Õ¥é¥°¤¬ oflag ¤Ë»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¤¬¡¢»ØÄꤵ¤ì¤¿Ì¾Á° name ¤ò»ý¤Ä¥­¥å¡¼¤¬Â¸ºß¤·¤Ê¤¤¡£
ENOMEM
½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£
ENOSPC
¿·¤·¤¤¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤òºîÀ®¤¹¤ë¤Î¤Ë½½Ê¬¤Ê¶õ´Ö¤¬¤Ê¤¤¡£ ¤³¤Î¥¨¥é¡¼¤Ï¤ª¤½¤é¤¯ queues_max ¾å¸Â¤ËÄñ¿¨¤·¤¿¤¿¤áµ¯¤³¤Ã¤¿¤Î¤À¤í¤¦¡£ mq_overview(7) ¤ò»²¾È¡£

½àµò

POSIX.1-2001.

¥Ð¥°

2.6.14 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ë¤Ï¡¢ ¥×¥í¥»¥¹¤Î umask ¤¬ mode ¤Ç»ØÄꤵ¤ì¤¿µö²ÄÀßÄê¤ËŬÍѤµ¤ì¤Ê¤«¤Ã¤¿¡£

´ØÏ¢¹àÌÜ

mq_close(3), mq_getattr(3), mq_notify(3), mq_receive(3), mq_send(3), mq_unlink(3), mq_overview(7)