mq_receive

Autres langues

Langue: ja

Autres versions - même langue

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

Autres sections - même nom

Section: 3 (Bibliothèques de fonctions)

̾Á°

mq_receive, mq_timedreceive - ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤«¤é¥á¥Ã¥»¡¼¥¸¤ò¼õ¿®¤¹¤ë

½ñ¼°


#include <mqueue.h>



ssize_t mq_receive(mqd_t mqdes, char *msg_ptr,

                   size_t msg_len, unsigned *msg_prio);



#define _XOPEN_SOURCE 600

#include <time.h>

#include <mqueue.h>



ssize_t mq_timedreceive(mqd_t mqdes, char *msg_ptr,

                   size_t msg_len, unsigned *msg_prio,

                   const struct timespec *abs_timeout);

ÀâÌÀ

mq_receive() ¤Ï¡¢µ­½Ò»Ò mqdes ¤Ç»²¾È¤µ¤ì¤ë¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤«¤éºÇ¤â¹â¤¤Í¥ÀèÅÙ¤ò»ý¤Ä ºÇ¤â¸Å¤¤¥á¥Ã¥»¡¼¥¸¤òºï½ü¤·¡¢¤½¤Î¥á¥Ã¥»¡¼¥¸¤ò msg_ptr ¤¬»Ø¤¹¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤¹¤ë¡£ msg_len °ú¤­¿ô¤Ï¡¢ msg_ptr ¤¬»Ø¤¹¥Ð¥Ã¥Õ¥¡¤ÎÂ礭¤µ¤ò¼¨¤¹¡£¤³¤ÎÃͤϥ­¥å¡¼¤Î mq_msgsize °À­¤è¤ê¤âÂ礭¤¯¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ (mq_getattr(3) »²¾È)¡£ prio ¤¬ NULL °Ê³°¤Î¾ì¹ç¡¢ prio ¤¬»Ø¤¹¥Ð¥Ã¥Õ¥¡¤Ë¼õ¿®¤·¤¿¥á¥Ã¥»¡¼¥¸¤ÎÍ¥ÀèÅÙ¤¬³ÊǼ¤µ¤ì¤ë¡£

¥­¥å¡¼¤¬¶õ¤Î¾ì¹ç¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ mq_receive() ¤Ï¡¢¿·¤·¤¤¥á¥Ã¥»¡¼¥¸¤¬ÆϤ¯¤«¡¢´Ø¿ô¸Æ¤Ó½Ð¤·¤¬¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê ÃæÃǤµ¤ì¤ë¤Þ¤Ç¡¢Ää»ß (block) ¤¹¤ë¡£ ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò (message queue description) ¤Ç O_NONBLOCK ¥Õ¥é¥°¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ mq_receive() ¤Ï¥¨¥é¡¼ EAGAIN ¤Ç¤¹¤°¤Ë¼ºÇÔ¤¹¤ë¡£

mq_timedreceive() ¤Ï mq_receive() ¤ÈÁ´¤¯Æ±¤¸Æ°ºî¤ò¤¹¤ë¤¬¡¢ ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤¬¶õ¤Ç¡¢¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò¤Ç O_NONBLOCK ¥Õ¥é¥°¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¡¢¤³¤Î¸Æ¤Ó½Ð¤·¤¬Ää»ß¤¹¤ë»þ´Ö¤Î¾å¸Â¤ò abs_timeout ¤¬»Ø¤¹¹½Â¤ÂΤǻØÄꤹ¤ëÅÀ¤¬°Û¤Ê¤ë¡£¤³¤Î¾å¸Â¤Ï¡¢¥¿¥¤¥à¥¢¥¦¥È¤Î»þ¹ï¤ò »þ¹ïµª¸µ (Epoch; 1970 ǯ 1 ·î 1 Æü 00:00:00) ¤«¤é¤Î·Ð²á»þ´Ö (ÉäȥʥÎÉäÎÁÈ) ¤Ç»ØÄꤹ¤ë¡£¥¿¥¤¥à¥¢¥¦¥È»þ¹ï¤Ï°Ê²¼¤Î¹½Â¤ÂΤǻØÄꤹ¤ë:


struct timespec {

    time_t tv_sec;        /* ÉÃ */

    long   tv_nsec;       /* ¥Ê¥ÎÉà */

};



¥á¥Ã¥»¡¼¥¸¤¬¥­¥å¡¼¤Ë¤Ê¤¯¡¢´Ø¿ô¸Æ¤Ó½Ð¤·»þ¤Ë¤¹¤Ç¤Ë¥¿¥¤¥à¥¢¥¦¥È»þ¹ï¤¬ ²á¤®¤Æ¤¤¤ë¾ì¹ç¡¢ mq_timedreceive() ¤Ï¤¹¤°¤ËÊ֤롣

ÊÖ¤êÃÍ

À®¸ù¤¹¤ë¤È¡¢ mq_receive() ¤È mq_timedreceive() ¤Ï¼õ¿®¤·¤¿¥á¥Ã¥»¡¼¥¸¤Î¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ ¥¨¥é¡¼¤Î¾ì¹ç¡¢-1 ¤òÊÖ¤·¡¢ errno ¤Ë¥¨¥é¡¼¤ò¼¨¤¹ÃͤòÀßÄꤹ¤ë¡£

¥¨¥é¡¼

EAGAIN
¥­¥å¡¼¤¬¶õ¤Ç¡¢¤«¤Ä mqdes ¤Ç»²¾È¤µ¤ì¤ë¥á¥Ã¥»¡¼¥¸¥­¥å¡¼µ­½Ò¤Ç O_NONBLOCK ¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤¿¡£
EBADF
mqdes ¤Ç»ØÄꤵ¤ì¤¿µ­½Ò»Ò¤¬ÉÔÀµ¤Ç¤¢¤ë¡£
EMSGSIZE
msg_len ¤¬¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Î mq_msgsize °À­¤è¤ê¤â¾®¤µ¤«¤Ã¤¿¡£
EINTR
´Ø¿ô¸Æ¤Ó½Ð¤·¤¬¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤êÃæÃǤµ¤ì¤¿¡£
EINVAL
´Ø¿ô¸Æ¤Ó½Ð¤·¤ÏÄä»ß¤¹¤ë¤Ï¤º¤Ç¤¢¤Ã¤¿¤¬¡¢ abs_timeout ¤¬ÉÔÀµ¤Ç¤¢¤Ã¤¿¡£ abs_timeout ¤¬ÉÔÀµ¤È¤Ï¡¢ tv_sec ¤¬ 0 ̤Ëþ¡¢¤â¤·¤¯¤Ï tv_nsec ¤¬ 0 ̤Ëþ¤« 1,000,000,000 ¤è¤êÂ礭¤¤¡¢¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£
ETIMEDOUT
¥á¥Ã¥»¡¼¥¸¤¬Å¾Á÷¤µ¤ì¤ëÁ°¤Ë´Ø¿ô¸Æ¤Ó½Ð¤·¤¬¥¿¥¤¥à¥¢¥¦¥È¤·¤¿¡£

½àµò

POSIX.1-2001.

´ØÏ¢¹àÌÜ

mq_close(3), mq_getattr(3), mq_notify(3), mq_open(3), mq_send(3), mq_unlink(3), feature_test_macros(7), mq_overview(7)