mq_send

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_send, mq_timedsend - ¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Ë¥á¥Ã¥»¡¼¥¸¤òÁ÷¿®¤¹¤ë

½ñ¼°


#include <mqueue.h>



mqd_t mq_send(mqd_t mqdes, const char *msg_ptr,

              size_t msg_len, unsigned msg_prio);



#define _XOPEN_SOURCE 600

#include <time.h>

#include <mqueue.h>



mqd_t mq_timedsend(mqd_t mqdes, const char *msg_ptr,

              size_t msg_len, unsigned msg_prio,

              const struct timespec *abs_timeout);

ÀâÌÀ

mq_send() ¤Ï¡¢µ­½Ò»Ò mqdes ¤Ç»²¾È¤µ¤ì¤ë¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¤Ë msg_ptr ¤¬»Ø¤¹¥á¥Ã¥»¡¼¥¸¤òÄɲ乤롣 msg_len °ú¤­¿ô¤Ï¡¢ msg_ptr ¤¬»Ø¤¹¥á¥Ã¥»¡¼¥¸¤ÎŤµ¤ò¼¨¤¹¡£¤³¤ÎŤµ¤Ï¥­¥å¡¼¤Î mq_msgsize °À­°Ê²¼¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ Ťµ¤¬ 0 ¤Î¥á¥Ã¥»¡¼¥¸¤âǧ¤á¤é¤ì¤Æ¤¤¤ë¡£

msg_prio °ú¤­¿ô¤Ï¡¢¥á¥Ã¥»¡¼¥¸¤ÎÍ¥ÀèÅÙ¤ò»ØÄꤹ¤ëÉé¤Ç¤Ê¤¤À°¿ô¤Ç¤¢¤ë¡£ ¥á¥Ã¥»¡¼¥¸¤ÏÍ¥ÀèÅ٤ι߽ç¤Ç¥­¥å¡¼¤Ë³ÊǼ¤µ¤ì¡¢Æ±¤¸Í¥ÀèÅ٤ο·¤·¤¤¥á¥Ã¥»¡¼¥¸¤Ï Ʊ¤¸Í¥ÀèÅ٤θŤ¤¥á¥Ã¥»¡¼¥¸¤Î¸å¤í¤Ë³ÊǼ¤µ¤ì¤ë¡£

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

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


struct timespec {

    time_t tv_sec;        /* ÉÃ */

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

};



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

ÊÖ¤êÃÍ

À®¸ù¤¹¤ë¤È¡¢ mq_send() ¤È mq_timedsend() ¤Ï 0 ¤òÊÖ¤¹¡£ ¥¨¥é¡¼¤Î¾ì¹ç¡¢-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_receive(3), mq_unlink(3), feature_test_macros(7), mq_overview(7)