¾ÆÀ̵ð ºñ¹Ð¹øÈ£ | ȸ¿ø°¡ÀÔ | ºñ¹Ð¹øÈ£ºÐ½Ç
   
¡¡»õ·Î¿î¼Ò½Ä
¡¡FAQ
¡¡À¥ÇÁ·Î±×·¥
¡¡À¥DB
¡¡À¥¼­¹ö
¡¡À¥ÇÁ·Î±×·¥¼öÁ¤
¡¡ÇØÇÇÄ®·³
¡¡°ñµåÆÁ
 
Á¦ÀÛÀÇ·Ú
À¥ÇÁ·Î±×·¥ ÆǸŸô
 
ÇöÀçÀ§Ä¡: ¸ÞÀÎ ÇØÇÇÆ÷·³ Ȳ±Ý : °Ô½Ã¹° Àбâ
  2002-06-03 (17:06:08) from 61.104.186.190
  ÀÛ¼ºÀÎ : HappyCGI Á¶È¸¼ö : 1643   
Á¦¸ñ : ´Ù¸¥ ÇÁ·Î±×·¥À» ½ÇÇà½ÃÄÑ Ãâ·Â³»¿ë Àбâ

´Ù¸¥ ÇÁ·Î±×·¥À» ½ÇÇà½ÃÅ°°í ±× Ãâ·Â ³»¿ëÀ» Àд ¹æ¹ýÀº ¿©·¯°¡Áö°¡ ÀÖ½À´Ï´Ù. ¸¹Àº ºÐµéÀÌ ¾Ë°í °è½ÃÁö¸¸, ¸î¸î ¸ð¸£½Ã´Â ºÐµéÀ» À§ÇØ ¿©±â ±× ¹æ¹ýµéÀ» ¼Ò°³ÇÕ´Ï´Ù. Backtick ¿ªµû¿ÈÇ¥(`...`)´Â ±× ¾È¿¡ µé¾îÀÖ´Â ³»¿ëÀ» shellÀ» ÅëÇØ ½ÇÇàÇÏ°í, Ç¥ÁØÃâ·Â(STDOUT)À¸·Î Ãâ·ÂµÇ´Â ³»¿ëÀ» ¹ÝȯÇÕ´Ï´Ù. µû¶ó¼­, $content = `cat /etc/passwd`; ´Â passwd ÆÄÀÏÀ» °£´ÜÈ÷ ÀоîµéÀÔ´Ï´Ù. ¹°·Ð, ´Ü¼øÇÑ ÆÄÀÏÀ» Àдµ¥´Â Á÷Á¢ openÀ» Çؼ­ ÀоîµéÀÌ´Â °ÍÀÌ ÁÁ½À´Ï´Ù. ¿ªµû¿ÈÇ¥¸¦ »ç¿ëÇÏ°Ô µÇ¸é, ±× ³»ºÎÀÇ ÇÁ·Î±×·¥À» ½ÇÇàÇϱâ À§Çؼ­ º°µµÀÇ ÇÁ·Î¼¼½º°¡ »ý¼ºµÇ¾î¾ß Çϱ⠶§¹®¿¡ ±×¸¸Å­ ½Ã½ºÅÛÀÇ ÀÚ¿øÀ» ¼Ò¸ðÇϰԵ˴ϴÙ. open ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ´Â ¹æ¹ý open ÇÔ¼ö¿¡¼­ ÆÄÀÏÀ̸§ºÐ¿¡ > ´ë½Å | (ÆÄÀÌÇÁ)±âÈ£¸¦ µÚ¿¡ ºÙÀ̸é ÇØ´ç ÆÄÀÏÀ̸§À» ½ÇÇà½ÃÅ°°í ±× Ãâ·Â³»¿ëÀ» ÀÐÀ» ¼ö ÀÖ½À´Ï´Ù. [ÇÁ·Î±×·¥ÄÚµå]
#!/usr/bin/perl # prog.pl print "$$\n"; warn "Exiting\n"; #!/usr/bin/perl # opener.pl $p = open(RUN, "./prog.pl |") || die $!; # ./prog.pl µÚ¿¡ | Ç¥½Ã. @out = <RUN>; close RUN; # ¹Ýµå½Ã ÇϽʽÿÀ. print "opener: $p\n"; print map { "opener: $_" } @out;
opener.pl¿¡¼­ prog.plÀ» "./prog.pl |"¿Í °°ÀÌ ÇÏ¿© ¿­¾ú½À´Ï´Ù.(open) ±× ÈÄ ÀÏ¹Ý ÆÄÀÏ Àб⿡¼­ ÇÏ´Â °Íó·³ <RUN>¸¦ ÀÌ¿ëÇÏ¿© Ãâ·Â³»¿ëÀ» ÀнÀ´Ï´Ù. Âü°í·Î, open ÇÔ¼ö°¡ ¹ÝȯÇÏ´Â °ÍÀº, ÇÁ·Î±×·¥ÀÌ Á¦´ë·Î ½ÇÇàµÇ¾úÀ» ¶§, »õ·Î¿î ÇÁ·Î¼¼½ºÀÇ ÇÁ·Î¼¼½º ¾ÆÀ̵ðÀÔ´Ï´Ù. ¸¸ÀÏ ÀÌ ÇÁ·Î±×·¥ÀÌ ¿À·£½Ã°£µ¿¾È »ì¾Æ ÀÖ´Â °Í(À¥¼­¹öó·³)À̶ó¸é close¸¦ ÇÏÁö ¾ÊÀ» °æ¿ì ¹®Á¦°¡ µÉ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, openÀº °è¼ÓÇØ¾ß Çϴµ¥, close¸¦ ÇØ ÁÖÁö ¾Ê´Â´Ù¸é, ÇØ´ç ÇÁ·Î¼¼½º°¡ Á×Áö¾Ê°í °è¼Ó ³²¾Æ¼­ ½Ã½ºÅÛÀÚ¿øÀ» Â÷ÁöÇÏ°í À־ °á±¹ ½Ã½ºÅÛÀÌ ¸ØÃß´Â »óȲÀÌ ¹ß»ýÇÒ ¼öµµ ÀְԵ˴ϴÙ. µû¶ó¼­ ¹Ýµå½Ã close¸¦ ÇØ ÁÖ¾î¾ß ÇÕ´Ï´Ù. ¸¸ÀÏ Ç¥ÁØ¿¡·¯(STDERR)±îÁö °°ÀÌ Àоî¾ß ÇÑ´Ù¸é [ÇÁ·Î±×·¥ÄÚµå]
#!/usr/bin/perl # prog.pl print "$$\n"; warn "Exiting\n"; #!/usr/bin/perl # opener.pl $p = open(RUN, "./prog.pl 2>&1 |") || die $!; # ./prog.pl µÚ¿¡ | Ç¥½Ã. @out = <RUN>; close RUN; # ¹Ýµå½Ã ÇϽʽÿÀ. print "opener: $p\n"; print map { "opener: $_" } @out;
¿Í °°ÀÌ 2>&1¸¦ Ãß°¡ÇÕ´Ï´Ù. ÀÌ ±ÛÀº http://www.perl.or.kr/tips/readoutput.html ¿¡¼­ ¹ßÃéµÈ ±ÛÀÔ´Ï´Ù.


HappyCGI's SIGN
°³¹ßÀÚÀÇ ¹Ì´öÀº

°ÔÀ¸¸§(Laziness)
ÂüÁö¸»±â(Impatience)
±³¸¸(Hubris)


   ¸Þ¸ð

³²°ÜÁø ¸Þ¸ð°¡ ¾ø½À´Ï´Ù.

:³×¸Â¾Æ¿ä: :È­³ª´Â±º¿ä: :Àá¿Í: :¿ì¿ïÇØ: :À̰ǾƳÄ: :¿ÕÇÏÇÏ: ¿Õ¿ôÀ½~ ³î·¥~

  

 
¨Ô
Á¦¸ñ
ÀÛ¼ºÀÎ
Á¶È¸
µî·ÏÀÏ
´Ù¸¥ ÇÁ·Î±×·¥À» ½ÇÇà½ÃÄÑ Ãâ·Â³»¿ë Àбâ
HappyCGI
1644
2002-06-03
 



  HOME | ȸ»ç¼Ò°³ | Á¦ÀÛÀÇ·Ú | °³ÀÎÁ¤º¸Ãë±Þ¹æħ | CGIMALL | ÀÚ·á½Ç | »çÀÌÆ®µî·Ï | ·©Å·100 | Æ÷·³ | Ãʺ¸°¡À̵å | Áú¹®°ú´äº¯ | ¹è³Ê±¤°í
Copyright¨Ï1997~2008 HappyCGI All rights reserved
Powered By HappyCGI