´ÙÀ½ À§·Î ÀÌÀü ¸ñÂ÷ ¸®´ª½º ÇÁ·Î±×·¡¸Ó¸¦ À§ÇÑ °¡À̵å

½Ã½ºÅÛ È£Ãâ:msgget() (SYSTEM CALL:msgget())

»õ·Î¿î ¸Þ¼¼Áö Å¥¸¦ ¸¸µé±â À§ÇÏ¿© ¶Ç´Â Á¸ÀçÇϴ ť¿¡ Á¢±ÙÇϱâ À§ÇÏ¿©, msgget() ½Ã½ºÅÛ È£ÃâÀÌ »ç¿ëµÈ´Ù.


  SYSTEM CALL: msgget();                                                          

  PROTOTYPE: int msgget ( key_t key, int msgflg );                                             
    RETURNS: ¼º°ø½Ã ¸Þ¼¼Áö Å¥ÀÇ È®ÀÎÀÚ(message queue identifier)
             -1 on error: errno = EACCESS (Á¢±Ù±ÇÇÑÀÌ ¾øÀ½)
                                  EEXIST (Å¥°¡ ÀÌ¹Ì Á¸ÀçÇÏ¿© ¸¸µé ¼ö ¾øÀ½)
                                  EIDRM (Å¥¿¡ »èÁ¦ Ç¥½Ã°¡ µÇ¾î ÀÖÀ½)
                                  ENOENT (Å¥°¡ Á¸ÀçÇÏÁö ¾ÊÀ½)
                                  ENOMEM (Å¥¸¦ ¸¸µé±â¿¡ ¸Þ¸ð¸®°¡ ºÎÁ·ÇÔ)
                                  ENOSPC (ÃÖ´ë Å¥ÀÇ °¹¼ö¸¦ ÃÊ°úÇÔ)
  NOTES:

msgget()ÀÇ Ã¹¹ø° ¾Æ±Ô¸ÕÆ®´Â Å°°ªÀÌ´Ù.(ftok()¸¦ È£ÃâÇÏ¿© ³Ñ°Ü¹ÞÀº °æ¿ì) ÀÌ Å°°ªÀº Ä¿³Î¾È¿¡ ÀÖ´Â ´Ù¸¥ ¸Þ¼¼Áö Å¥µé¿¡ ´ëÇØ Å°°ªÀÌ Á¸ÀçÇÏ´ÂÁö¸¦ ºñ±³ÇÑ´Ù. À̶§, ¿­±â(open)³ª Á¢±Ù(access) µ¿ÀÛÀº msgflg ¾Æ±Ô¸ÕÆ®ÀÇ ³»¿ë¿¡ µû¸¥´Ù.

IPC_CREAT

Ä¿³Î¾È¿¡ Á¸ÀçÇÏ´ÂÁö¸¦ È®ÀÎÇÑ ÈÄ Å¥¸¦ ¸¸µç´Ù.

IPC_EXCL

IPC_CREAT°¡ »ç¿ëµÉ ¶§, Å¥°¡ ÀÌ¹Ì Á¸ÀçÇÏ¸é ½ÇÆÐó¸®ÇÑ´Ù.

IPC_CREAT°¡ È¥ÀÚ »ç¿ëµÇ¸é, msgget()´Â »õ·Ó°Ô »ý¼±µÈ ¸Þ¼¼Áö Å¥ÀÇ ¸Þ¼¼Áö Å¥ È®ÀÎÀÚ (the message queue identifier)¸¦ ¹ÝȯÇϰųª, °°Àº Å°°ªÀ» °¡Áö°í ÀÌ¹Ì Á¸ÀçÇϴ ťÀÇ È®ÀÎÀÚ¸¦ ¹ÝȯÇÑ´Ù. IPC_EXCLÀÌ IPC_CREAT¿Í ÇÔ²² »ç¿ëµÇ¸é, »õ·Î¿î Å¥°¡ ¸¸µé¾îÁö°Å³ª Å¥°¡ Á¸ÀçÇϸé -1¸¦ °¡Áö¸ç È£Ãâ¿¡ ½ÇÆÐÇÑ´Ù. IPC_EXCLÀº ±× ÀÚü·Î´Â ¾µ¸ð°¡ ¾øÁö¸¸, IPC_CREAT¿Í ÇÔ²² Á¶ÇյǾî Á¢±ÙÇϱâ À§ÇÑ Á¸ÀçÇÏÁö ¾Ê´Â Å¥¸¦ ¿©´Â(open) °ÍÀ» º¸ÀåÇϴµ¥ »ç¿ëµÉ ¼ö ÀÖ´Ù.

IPC °´Ã¼´Â À¯´Ð½º ÆÄÀÏ ½Ã½ºÅÛ»óÀÇ ÆÄÀÏ Çã°¡»çÇ×ÀÇ ±â´É°ú ºñ½ÁÇÑ Çã°¡»çÇ×À» °¡Áö°í ÀÖÀ¸¹Ç·Î, ºÎ°¡ÀûÀÎ 8Áø ¸ðµå´Â ¸¶½ºÅ© ¾È¿¡ ORµÉ °ÍÀÌ´Ù!

¸Þ¼¼Áö Å¥¸¦ ¸¸µé°Å³ª ¿­±â À§ÇÑ ºü¸¥ wrapper ÇÔ¼ö¸¦ ¸¸µé¾î º¸ÀÚ:


int open_queue(key_t keyval)
{
	int	qid;

	if((qid = msgget( keyval, IPC_CREAT | 0660 )) == -1)
	{
		return(-1);
	}

	return(qid);
}

¹¬½ÃÀûÀ¸·Î 0660ÀÇ Çã°¡»çÇ×(permission)À» »ç¿ëÇÔÀ» ÁÖ¸ñÇ϶ó. ÀÌ ÀÛÀº ÇÔ¼ö´Â ¸Þ¼¼Áö Å¥ È®ÀÎÀÚ (int)¸¦ ¹ÝȯÇϰųª ¿¡·¯½Ã -1À» ¹ÝȯÇÑ´Ù. Å° °ªÀº ¾Æ±Ô¸ÕÆ®·Î ³Ñ°ÜÁ®¾ß¸¸ ÇÑ´Ù.


ÀÌÀü:³»ºÎ¿Í »ç¿ëÀÚ ÀÚ·á ±¸Á¶ (Internal and User Data Structures) ´ÙÀ½:½Ã½ºÅÛ È£Ãâ:msgsnd() (SYSTEM CALL:msgsnd())

Copyright (c) 1996,1997 by Euibeom.Hwang & SangEun.Oh All Rights Reserved

Email To:Webmaster , Another address
LAST UPDATE Nov 18,1997
Created Nov 17,1997