SYSTEM & SOFTWARE LAB
¿¬±¸½Ç¼Ò°³ Áöµµ±³¼ö ³í¹®/ƯÇã/º¸°í¼­ ÇÁ·ÎÁ§Æ® ¼¼¹Ì³ª °­ÀÇ½Ç °Ô½ÃÆÇ ÀÚ·á½Ç °ü·Ã»çÀÌÆ®
 

°ø°³°­ÁÂ
¸ÖƼ¹Ìµð¾îÀÀ¿ë½Ã½ºÅÛ
ÀÓº£µðµåOS
¼ÒÇÁÆ®¿þ¾î°øÇÐ
ÀÇ·áÀ¶ÇÕÀÓº£µðµå½Ã½ºÅÛ




  [Æß]named pipe(FIFOs) 2005-12-01 22:22:42  
  À̸§ : jinnie4u ÀÌÁÂÇü  (210.115.¢½.¢½)  Á¶È¸ : 4035    
named pipe(FIFOs)¸¦ °¡Áö°í ¹«¾ùÀ» ÇÒ ¼ö Àִ°¡?
============================================

2.10.1 named pipe°¡ ¹«¾ùÀΰ¡?
----------------------------

"named pipe"´Â °ü·ÃµÈ ÇÁ·Î¼¼½º°£¿¡ µ¥ÀÌÅ͸¦ Àü´ÞÇϱâÀ§ÇÑ Æ¯º°ÇÑ ÆÄÀÏÀÌ´Ù.  Çϳª ¶Ç´Â ±× ÀÌ
»óÀÇ ÇÁ·Î¼¼½ºµéÀÌ ±×°Í¿¡ µ¥ÀÌÅ͸¦ ¾²¸é  ´Ù¸¥ ÇÁ·Î¼¼½º´Â ±×°ÍÀ» Àд´Ù.  Named pipe´Â ÆÄÀÏ
½Ã½ºÅÛ¿¡¼­ VisibleÇÑ ÆÄÀÏÀ̾ lsÇÁ·Î±×·¥ µîÀ¸·Î  ´Ù¸¥ ÀÏ¹Ý ÆÄÀÏ Ã³·³ º¼  ¼öµµ ÀÖ´Ù.(named
pipe´Â ¶ÇÇÑ fifo's¶ó°íµµ ºÒ¸®¿ì´Âµ¥ À̰ÍÀº "First In, First Out"À» ¶æÇÑ´Ù.)

Named pipe´Â ÀÏ¹Ý ÆÄÀÌÇÁ°¡ ºÎ¸ð/Àڽİ£¿¡¸¸ ¿¬°áÇÒ ¼ö  Àִ°Ϳ¡ ºñÇØ °ü·Ã¾ø´Â ÇÁ·Î¼¼½º°£¿¡
µµ µ¥ÀÌÅ͸¦ Àü´ÞÇϰïÇÑ´Ù.

ºñ·Ï ½Ã½ºÅÛ¿¡¼­ ¹«¸í¾¾ pipe´Â ¾ç¹æÇ⼺ÀÌÁö¸¸, Named pipe´Â Àý´ëÀûÀ¸·Î ÇÑÂÊ ¹æÇ⼺ÀÌ´Ù.

2.10.2 named pipe¸¦ ¾î¶»°Ô »ý¼ºÇÒ ¼ö Àִ°¡?
------------------------------------

ÀÎÅÍ·ºÆ¼ºêÇÏ°Ô named pipe¸¦ ¸¸µé±â À§Çؼ­´Â 'mknod'¶Ç´Â 'mkfifo'¸¦ ½ÇÇàÇØ¾ß ÇÑ´Ù.  ¾î¶² ½Ã
½ºÅÛ¿¡¼­´Â mknod°¡ /etcµð·ºÅ丮¿¡ ÀÖ´Ù. ´Ù½Ã ¸»ÇÏ¸é ¿©·¯ºÐÀÇ ÆÐ½º¿¡ ¼ÓÇØ ÀÖ´Ù´Â ¸»ÀÌ´Ù. ¿©
·¯ºÐÀÇ ¸Å´º¾ó ÆäÀÌÁö¸¦ º¸¸é ÀÚ¼¼ÇÑ°É ¾Ë¼ö ÀÖ´Ù.

CÇÁ·Î±×·¥¿¡¼­ named pipe¸¦ ¸¸µé±âÀ§ÇØ mkfifo()ÇÔ¼ö°¡ ¾²ÀδÙ.

     /* ¸í½ÃÀûÀ¸·Î umask¸¦ ¼³Á¤ÇÏ¸é ¿©·¯ºÐÀº ±×°ÍÀÌ ¾îµð¿¡ Á¸ÀçÇÏ´ÂÁö ¾Ë¼ö ¾ø´Ù.*/
     umask(0);
     if (mkfifo("test_fifo", S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP))
     {
         perror("mkfifo");
         exit(1);
     }

mkfifo()°¡ ¾øÀ¸¸é mknod()¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.

     /* set the umask explicitly, you don't know where it's been */
     umask(0);
     if (mknod("test_fifo",
                 S_IFIFO | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP,
                0))
     {
         perror("mknod");
         exit(1);
     }

2.10.3 ¾î¶»°Ô named pipe¸¦ »ç¿ëÇϴ°¡?
---------------------------------

pipe¸¦ »ç¿ëÇϱâÀ§Çؼ­ ÀÏ¹Ý ÆÄÀÏó·³ openÇϰí ÀÏ¹Ý pipeó·³ read()¿Í write()¸¦ ¼öÇàÇÑ´Ù.
±×·¯³ª open()Àº ºí·ÏµÉ °ÍÀÌ´Ù. ´ÙÀ½ÀÇ ·êµéÀÌ Àû¿ëµÈ´Ù.

   * ¸¸¾à (O_RDWR)ÀÇ ÇüÅÂ, Áï Àбâ,¾²±âÀÇ ÇüÅ·ΠÆÄÀÏÀ» ¿­¸é ºí·ÏµÇÁö ¾Ê´Â´Ù.

   * ¸¸¾à Àбâ·Î ¿­¸é(O_RDONLY) ´Ù¸¥  ÇÁ·Î¼¼½º°¡ write·Î ¿­¶§±îÁö ºí·ÏµÈ´Ù. ±×·¯³ª  ¸¸¾à
O_NONBLOCKÀÌ ÁöÁ¤µÇ¸é openÀº¼º°øÀûÀ¸·Î µÉ °ÍÀÌ´Ù.

   * ¸¸¾à O_WRONLY ´Ù¸¥ ÇÁ·Î¼¼½º°¡ FIFO¸¦  Àбâ·Î ¿­¶§±îÁö ºí·ÏµÈ´Ù. À̰͵µ ¿ª½Ã  ¸¸¾à
ÆÄÀÏÀ» ¿­ ¶§ O_NONBLOCKÀÌ ÁöÁ¤µÇ¸é ºí·ÏµÇÁö ¾Ê´Â´Ù.

FIFO¸¦ ÀÏ°í ¾µ ¶§ ÀÏ¹Ý Pipe³ª ¼ÒÄÏ¿¡¼­  °°ÀÌ Àû¿ëµÇ´Â °í·Á »çÇ×Àº read() µîÀÇ ÇÔ¼ö´Â  ¸ðµç
Writer°¡ »ó´ë reader°¡ ¾ø¾î¼­ closeµÇ°Å³ª write()°¡  SIGPIPE¸¦ ¹ß»ý½Ã۸é EOF¸¦ ¸®ÅÏ ½ÃŲ
´Ù´Â °ÍÀÌ´Ù. (¸¸¾à SIGPIPE°¡ ºí·ÏµÇ°Å³ª ¹«½ÃµÇ¸é ±× È£ÃâÀº EPIPEÀÇ ¿¡·¯¸¦ ¸¸µé¸é¼­ ½ÇÆÐÇÑ
´Ù)



 
ÀÚµ¿µî·Ï¹æÁö : 7ff2209e86   ¿ÞÂÊÀÇ ±ÛÀÚÁß »¡°£±ÛÀÚ¸¸ ¼ø¼­´ë·Î ÀÔ·ÂÇϼ¼¿ä.

À̸ðƼÄÜ »ç¿ë 
¸ñ·Ï ±Û¾²±â
°Ô½Ã¹° 109°Ç  
No Title Name Date Hits
119   SIMD.. (2) jinnie4u ÀÌÁÂÇü 07-07-06 3494
118   Ajax ½±°Ô »ç¿ëÇØ º¾½Ã´Ù (2) byfun ¹ÚÃѸí 07-05-03 2398
117   GCC : Intel 386 and AMD x86-64 Options byfun ÃѸíÀÌ 04-05-19 12775
116   ¸®´ª½º¿¡ Çϵåµð½ºÅ© Ãß°¡Çϱâ byfun ¹ÚÃѸí 04-02-03 2751
115   Linux Network Install (using NFS/FTP/HTTP) byfun ¹ÚÃѸí 06-03-06 3918
114   [HW] RS232 Æ÷Æ® Á¦¾î ¿¹Á¦ (3) winhoho ±èµ¿Çõ 05-03-27 21309
113   [MFC] ´ÙÀ̾ó·Î±×(Dialog)À§¿¡ Åø¹Ù(ToolBar) ºÙÀ̱â (4) jinnie4u ÀÌÁÂÇü 06-06-25 8502
112   Á¦°¡ ¾´ ±ÛÀ» ¿­¾îº¼ ¼ö°¡ ¾ø³×¿ä... ÀÌÈﺹ 07-12-09 1651
105   [Æß] XML - SAX °ú DOM API »ç¿ë fastpopo ¹æÇѹΠ07-03-08 2092
104   [Æß] JAVA RMI À» ÀÌ¿ëÇÏ¿© À̱âÁ¾ÀÇ DB¿¡ Á¢±ÙÇϱâ fastpopo ¹æÇѹΠ07-03-08 1852
103   java ¿¡¼­ byte ¹è¿­ 4°³¸¦ ¸ð¾Æ¼­ int ·Î º¯È¯ ÇÒ¶§!! fastpopo ¹æÇѹΠ07-01-30 2499
102   Visual Studio Project Renamer jinnie4u ÀÌÁÂÇü 06-10-23 4442
101   Inline functions (2) ÇÑ¿ì¶÷ 06-10-09 2485
100   ½ºÇÉ ÄÁÆ®·Ñ ÀÀ¿ë(up, down) | MFC jinnie4u ÀÌÁÂÇü 06-07-19 2885
95   [ÀÓ½Ã] µðÁöÅнýºÅÛ ½ÇÇè 4ÁÖÂ÷ 5ÁÖÂ÷ ½Ç½ÀÀÚ·á dkkim ±èµ¿±¹ 06-04-03 1997

±Û¾²±â
[óÀ½][ÀÌÀü][1] 2 [3][4][5]...[´ÙÀ½][¸Ç³¡]
 
Kangwon Univ. Dept. of Computer Imformation and Communications Engineering Software and System Lab.