linux man page : mq_receive - ¸Þ½ÃÁö Å¥·ÎºÎÅÍ ¸Þ½ÃÁö¸¦ ¹Þ´Â´Ù.
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.

mq_receive

»ç¿ë ¹ý

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); 
 
-lrt¸¦ ¸µÅ©ÇØ¾ß ÇÑ´Ù. 
 

¼³¸í

mq_receiveÇÔ¼ö´Â mqdes°¡ °¡¸®Å°´Â ¸Þ½ÃÁö Å¥·Î ºÎÅÍ °¡Àå ³ôÀº ¿ì¼±¼øÀ§¸¦ °¡Áö´Â ¸Þ½ÃÁö¸¦ °¡Á®¿À°í ¸Þ½ÃÁöÀÇ ¿ì¼±¼øÀ§¸¦ msg_prio¿¡ º¹»çÇÑ´Ù. ¸¸¾à msg_prio°¡ NULLÀÌ¸é ¹«½ÃÇÑ´Ù. msg_ptrÀº ÀÌ ¸Þ½ÃÁö¸¦ °¡¸®Å²´Ù. msg_lenÀº msg_ptrÀÌ °¡¸®Å°´Â ¿µ¿ª¿¡¼­ Àоî¿Ã µ¥ÀÌÅÍÀÇ Å©±â·Î mg_msgsizeº¸´Ù Ä¿¾ß ÇÑ´Ù.

¸¸¾à Å¥°¡ ºñ¾îÀÖ´Ù¸é mq_receive´Â ÀÐÀ» ¸Þ½ÃÁö°¡ ÀÖÀ» ¶§±îÁö, ȤÀº ½Ã±×³Î¿¡ ÀÇÇØ ÀÎÅÍ·´Æ®°¡ °É¸± ¶§±îÁö ºÀ¼âµÈ´Ù. ¸¸¾à ¸Þ½ÃÁö Å¥ Áö½ÃÀÚ°¡ O_NONBLOCK Ç÷¡±× »óŶó¸é, Áï½Ã ½ÇÆÐÇϰí EAGAINÀ» ¹ÝȯÇÑ´Ù.

mq_timedreceiveÇÔ¼ö´Â Å¥°¡ ºñ¾îÀÖ°í O_NONBLOCK»óŰ¡ ¾Æ´Ñ °æ¿ì, Áï ºÀ¼â ¸ðµåÀÏ °æ¿ì timeout ½Ã°£¸¸Å­ ±â´Ù¸°ÈÄ ¹ÝȯÇÑ´Ù´Â Á¡À» Á¦¿ÜÇϰí mq_timedreceiveÇÔ¼ö¿Í µ¿ÀÏÇÏ´Ù. ±â´Ù¸®´Â ½Ã°£Àº 1970³â 1¿ù 1ÀÏ 00:00:00ºÎÅ͸¦ ±âÁØÀ¸·Î °è»êÇÑ´Ù. ½Ã°£Àº timespec ±¸Á¶Ã¼·Î ÁöÁ¤ÇÑ´Ù.
struct timespec 
{ 
    time_t tv_sec;  /* ÃÊ */ 
    long tv_nsec;   /* ³ª³ë ÃÊ */ 
} 
 

¹Ýȯ °ª

¼º°øÇϸé, mq_receive ¿Í mq_timedreceive ÇÔ¼ö´Â ÀÐÀº ¸Þ½ÃÁöÀÇ ¹ÙÀÌÆ® Å©±â¸¦ ¹ÝȯÇÑ´Ù. ¿¡·¯°¡ ¹ß»ýÇϸé -1À» ¹ÝȯÇÑ´Ù.

¿¡·¯

EAGAIN
O_NOMBLOCK Ç÷¡±×°¡ ¼³Á¤µÈ »óÅ¿¡¼­, Å¥°¡ ºñ¾îÀÖ´Ù.
EBADF
¸Þ½ÃÁö Å¥ ÁöÁ¤ÀÚÀÎ mqdes°¡ À߸øµÇ¾ú´Ù.
EINTR
ÇÔ¼ö¸¦ È£ÃâÇÏ´Â Áß¿¡ ½Ã±×³Î Çڵ鷯¿¡ ÀÇÇØ¼­ ÀÎÅÍ·´Æ®°¡ °É·È´Ù.
EMSGSIZE
msg_lenÀÌ ¸Þ½ÃÁöÅ¥ÀÇ mq_msgsizeº¸´Ù ÀÛ´Ù.

¿¹Á¦

  1. IPC - ¸Þ½ÃÁöÅ¥

°ü·Ã ±Û

me_send(3), mq_close(3), mq_open(3), time
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.