POPEN

Section: ¸®´ª½º ÇÁ·Î±×·¡¸Ó ¸Å´º¾ó (3)
Updated: 1998³â 4¿ù 7ÀÏ
Index
Return to Main Contents
 

À̸§

popen, pclose - ÇÁ·Î¼¼½º I/O  

»ç¿ë¹ý

#include <stdio.h>

FILE *popen(const char *command, const char *type);

int pclose(FILE *stream);  

¼³¸í

popen() ÇÔ¼ö´Â pipe, fork¿¡ ÀÇÇØ »ý¼ºµÈ ÇÁ·Î¼¼½º¸¦ ¿­°í shellÀ» ±âµ¿ÇÑ´Ù. pipe´Â ´Ü ¹æÇâÀ¸·Î Á¤ÀǵǾú±â ¶§¹®¿¡, type ÀÎÀÚ´Â Àбâ-¾²±â°¡ ¾Æ´Ï¶ó µÑÁß Çϳª¸¸ ÁöÁ¤ÇÑ´Ù.; °á°ú ½ºÆ®¸²Àº Àбâ-Àü¿ëÀ̰ųª ¾²±â-Àü¿ëÀÌ´Ù.

command ÀÎÀÚ´Â shell ¸í·É¾î ¶óÀÎÀÌ Æ÷ÇÔÇÏ´Â null·Î Á¾·áµÈ ¹®ÀÚ¿­¿¡ ´ëÇÑ Æ÷ÀÎÅÍÀÌ´Ù. ÀÌ ¸í·É¾î´Â -c Ç÷¡±×¸¦ »ç¿ëÇÏ¿© /bin/sh ¿¡ Àü´ÞµÈ´Ù.; ¸¸ÀÏ ÀÎÀÚ°¡ ÀÖ´Ù¸é, Çؼ®Àº shell¿¡ ÀÇÇØ ÇàÇØÁø´Ù. mode ÀÎÀÚ´Â Àб⸦ À§ÇÑ 'r'À̳ª ¾²±â¸¦ À§ÇÑ 'w'Áß ÇϳªÀÎ null·Î Á¾·áµÈ ¹®ÀÚ¿­¿¡ ´ëÇÑ Æ÷ÀÎÅÍÀÌ´Ù.

popen() ¿¡¼­ ¹Ýȯ °ªÀº fclose()º¸´Ù pclose() ·Î Á¾·áµÇ¾î¾ß ÇÏ´Â º¸Åë Ç¥ÁØ I/O ½ºÆ®¸²ÀÌ´Ù. ±×·± ½ºÆ®¸²¿¡ ¾²´Â°ÍÀº ¸í·É¾îÀÇ Ç¥ÁØ ÀԷ¿¡ ¾²´Â°Í°ú °°´Ù;¸í·É¾îÀÇ Ç¥ÁØ Ãâ·ÂÀº ¸¸ÀÏ ÀÌ°ÍÀÌ ¸í·É¾î ÀÚü¿¡ ÀÇÇØ ¼öÁ¤µÇÁö ¾Ê¾Ò´Ù¸é popen()ÀÌ È£ÃâÇÏ´Â ÇÁ·Î¼¼½ºÀÇ °Í°ú °°´Ù. ´ëÁ¶ÀûÀ¸·Î, ``popened'' ½ºÆ®¸²¿¡¼­ Àбâ´Â ¸í·É¾îÀÇ Ç¥ÁØ Ãâ·ÂÀ» Àаí, ¸í·É¾î Ç¥ÁØ ÀÔ·ÂÀº popenÀ» È£ÃâÇÑ ÇÁ·Î¼¼½ºÀÇ °Í°ú °°´Ù.

popen ½ºÆ®¸²Àº ±âº»ÀûÀ¸·Î ¿ÏÀü ¹öÆ۵ȴٴ Á¡¿¡ ÁÖÀÇÇضó.

pclose ÇÔ¼ö´Â Á¾·áµÇ´Â °ü·Ã ÇÁ·Î¼¼½º¸¦ ±â´Ù¸®¸ç wait4°¡ ¹ÝȯÇÏ´Â °Íó·³ ¸í·É¾îÀÇ Á¾·á »óŸ¦ ¹ÝȯÇÑ´Ù.  

¹Ýȯ°ª

popen ÇÔ¼ö´Â ¸¸ÀÏ fork(2) ³ª pipe(2) È£ÃâÀÌ ½ÇÆÐÇϰųª ¸Þ¸ð¸®¸¦ ÇÒ´çÇÒ¼ö ¾ø´Ù¸é, NULL À» ¹ÝȯÇÑ´Ù.

pclose ÇÔ¼ö´Â ¸¸ÀÏ wait4 °¡ ¿¡·¯¸¦ ¹ÝȯÇϰųª ¸î¸î ´Ù¸¥ ¿¡·¯°¡ ¹ß°ßµÇ¸é -1À» ¸®ÅÏÇÑ´Ù.  

¿¡·¯

popen ÇÔ¼ö´Â ¸¸ÀÏ ¸Þ¸ð¸® ÇÒ´çÀÌ ½ÇÆÐÇÑ´Ù¸é, errno ¸¦ ¼³Á¤ÇÏÁö ¾Ê´Â´Ù. fork() ³ª pipe() ¿¡¼­ ½ÇÆÐÇÑ´Ù¸é, errno ´Â Àû´çÈ÷ ¼³Á¤µÈ´Ù. ¸¸ÀÏ mode ÀÎÀÚ°¡ ¹«È¿ÇÏ°í, ÀÌ Á¶°ÇÀÌ ¹ß°ßµÈ´Ù¸é, errno ´Â EINVAL·Î ¼³Á¤µÈ´Ù.

¸¸ÀÏ pclose() °¡ ÀÚ½Ä »óŸ¦ ¾òÀ»¼ö ¾ø´Ù¸é, errno ´Â ECHILD·Î ¼³Á¤µÈ´Ù.  

ȣȯ

POSIX.2  

¹ö±×

Àбâ À§ÇØ ¿­·ÁÁø ¸í·É¾îÀÇ Ç¥ÁØ ÀÔ·ÂÀº popen()À» È£ÃâÇÏ´Â ÇÁ·Î¼¼½º°¡ °¡Áö°í ÀÖ´Â offsetÀ» °øÀ¯Çϱ⠶§¹®¿¡, ¸¸ÀÏ ¿ø·¡ ÇÁ·Î¼¼½º°¡ ¹öÆÛµÈ Àб⸦ ÇÑ´Ù¸é, ¸í·É¾îÀÇ ÀÔ·Â À§Ä¡´Â ¿¹»óµÉ¼ö ¾ø´Ù. ºñ½ÁÇÏ°Ô ¾²±â À§ÇØ ¿­·ÁÁø ¸í·É¾î¿¡¼­ÀÇ Ãâ·ÂÀº ¿ø·¡ ÇÁ·Î¼¼½ºÀÇ °Í°ú ¼¯Àϼö ÀÖ´Ù. µÚÀÇ ¹®Á¦´Â popenÀü¿¡ fflush(3)¸¦ È£ÃâÇÏ¿© ÇÇÇÒ¼ö ÀÖ´Ù.

shell ½ÇÇà½Ã ½ÇÆд ¸í·É¾î ½ÇÇàÀÇ shell½ÇÆгª ¸í·É¾îÀÇ Á¾·á¿Í ±¸º°µÇ¾î¾ß ÇÑ´Ù. À¯ÀÏÇÑ ÈùÆ®´Â 127 exit »óÅÂÀÌ´Ù.  

¿ª»ç

popen() ¿Í pclose() ÇÔ¼ö´Â Version 7 AT&T UNIX¿¡¼­ ³ªÅ¸³µ´Ù.  

°ü·Ã Ç׸ñ

fork(2), sh(1), pipe(2), wait4(2), fflush(3), fclose(3), fopen(3), stdio(3), system(3).  

¿ªÀÚ

Á¤°­ÈÆ <skyeyes@soback.kornet.net>, 2001³â 4¿ù 9ÀÏ


 

Index

À̸§
»ç¿ë¹ý
¼³¸í
¹Ýȯ°ª
¿¡·¯
ȣȯ
¹ö±×
¿ª»ç
°ü·Ã Ç׸ñ
¿ªÀÚ

This document was created by man2html, using the manual pages.
Time: 08:07:01 GMT, March 25, 2004