17-2.°í¼öÁØ ÆÄÀÏ ÀÔÃâ·Â

17-2-°¡.½ºÆ®¸²

½ºÆ®¸²(Stream)À̶ó´Â ¿ë¾î´Â È帧À» ÀǹÌÇÑ´Ù. ¸¶Ä¡ °³¿ï°¡ÀÇ ¹°µéÀÌ Èê·¯°¡µíÀÌ ¹ÙÀÌÆ®µéÀÌ ¼ø¼­´ë·Î ÀÔÃâ·ÂµÇ´Â ³í¸®ÀûÀÎ ÀåÄ¡¸¦ ½ºÆ®¸²À̶ó°í ÇÑ´Ù. ÆÄÀÏ¿¡µµ ¹ÙÀÌÆ®µéÀÌ ÀúÀåµÇ¾î ÀÖÀ¸¸ç ÀÐÀ» ¶§³ª ¾µ ¶§ ¼ø¼­´ë·Î ¹ÙÀÌÆ®µéÀÌ ÀÔÃâ·ÂµÇ¹Ç·Î ½ºÆ®¸²À̶ó°í ÇÒ ¼ö ÀÖ´Ù. Å°º¸µå, È­¸é, ÇÁ¸°ÅÍ µîÀÇ ¹°¸®ÀûÀÎ Àåºñµéµµ ¹ÙÀÌÆ®µéÀÌ ¼ø¼­´ë·Î Èê·¯ ´Ù´Ï¹Ç·Î ÀÏÁ¾ÀÇ ½ºÆ®¸²ÀÌ´Ù.

´ëºÎºÐÀÇ ¿î¿µÃ¼Á¦´Â Å°º¸µå¿Í È­¸é(Console), ÇÁ¸°ÅÍ µîÀ» ½ºÆ®¸²À̶ó´Â µ¿ÁúÀûÀÎ ÀåÄ¡·Î ´Ù·ç¸ç ÆÄÀÏ°ú °°Àº ¹æ¹ýÀ¸·Î ÀÔÃâ·ÂÇÑ´Ù. ÆÄÀÏ°ú Å°º¸µå, È­¸é µîÀÇ ÀåÄ¡´Â ¼­·Î Á¦¾îÇÏ´Â ¹æ¹ýÀÌ ´Ù¸£Áö¸¸ ½ºÆ®¸²À̶ó´Â ³í¸®ÀûÀ¸·Î µ¿µîÇÑ ÀåÄ¡·Î Ç¥ÇöµÇ±â ¶§¹®¿¡ µ¿ÀÏÇÑ ¹æ¹ýÀ¸·Î ÀÔÃâ·ÂÇÒ ¼ö ÀÖ´Ù. °¡·É ÆÄÀÏ¿¡ ¾²µíÀÌ Äֿܼ¡ ¾²¸é È­¸é¿¡ ¹®ÀÚ¿­ÀÌ Ãâ·ÂµÇ¸ç °°Àº ¹æ¹ýÀ¸·Î ÇÁ¸°ÅÍ·Î Ãâ·ÂÇÏ¸é ¹®¼­°¡ ÀμâµÈ´Ù.

È­¸é, ÇÁ¸°ÅÍ, Á÷·Ä Æ÷Æ® µîÀ» ÆÄÀÏ°ú µ¿µîÇÑ ÀåÄ¡·Î Ãë±ÞÇϸé ÀÏ°üµÈ ¹æ¹ýÀ¸·Î ½ºÆ®¸²°£ÀÇ µ¥ÀÌÅ͸¦ º¹»çÇÒ ¼ö ÀÖÀ¸¸ç »ç¿ëÀÚ´Â ÇÑ ¸í·ÉÀ» ¿©·¯ ÀåÄ¡¿¡ ¶È°°ÀÌ Àû¿ëÇÒ ¼ö ÀÖ´Ù. µµ½º¿¡¼­ copy con a.txt ¸í·ÉÀº ÄַܼκÎÅÍ ÀÔ·ÂµÈ ¹®ÀÚ¿­À» a.txt¶ó´Â ÆÄÀÏ·Î º¹»çÇ϶ó´Â ¸í·ÉÀ¸·Î »ç¿ëµÇ¸ç copy a.txt prnÀº a.txt¸¦ ÇÁ¸°ÅÍ·Î º¹»çÇÔÀ¸·Î½á ¹®¼­¸¦ ÀμâÇÑ´Ù.

½ºÆ®¸²Àº ³»ºÎ¿¡ ÀÔÃâ·Â ¹öÆÛ¸¦ °¡Áö°í ÀÖÀ¸¸ç ÀÌ ¹öÆÛ´Â ½ºÆ®¸²¿¡ ÀÇÇØ ÀÚµ¿À¸·Î °ü¸®µÇ¹Ç·Î ÇÁ·Î±×·¡¸Ó´Â ¹öÆÛ¸¦ ÁغñÇϰųª °ü¸®ÇÒ ÇÊ¿ä°¡ ¾ø´Ù. ¾î¶² ½ºÆ®¸²À¸·ÎºÎÅÍ ¾ó¸¶¸¸Å­ÀÇ µ¥ÀÌÅ͸¦ Àаųª ¾²°í ½Í´Ù´Â ÃÖ¼ÒÇÑÀÇ ÀÇ»ç Ç¥Çö¸¸ Çϸé ÇÊ¿äÇÑ µ¿ÀÛÀº ½ºÆ®¸²ÀÌ ³»ºÎÀûÀ¸·Î ¾Ë¾Æ¼­ ¼öÇàÇÑ´Ù. ±×·¡¼­ ½ºÆ®¸²À» ÅëÇÑ ÀÔÃâ·Â ¹æ¹ýÀº »ç¿ëÇϱ⠽¬¿ì¸ç ±×·¡¼­ °í¼öÁØÀ̶ó°í ÇÏ´Â °ÍÀÌ´Ù.

½ºÆ®¸²ÀÇ ÇöÀç »óÅ´ FILE ±¸Á¶Ã¼¿¡ ±â¾ïµÈ´Ù. ÀÌ ±¸Á¶Ã¼´Â stdio.h¿¡ ´ÙÀ½°ú °°ÀÌ Á¤ÀǵǾî ÀÖÀ¸¸ç ±¸Á¶Ã¼ÀÇ ¸â¹öµéÀº ¿î¿µÃ¼Á¦¿¡ µû¶ó Á¶±Ý¾¿ ´Þ¶óÁö±âµµ ÇÑ´Ù.

 

struct _iobuf {

        char *_ptr;

        int   _cnt;

        char *_base;

        int   _flag;

        int   _file;

        int   _charbuf;

        int   _bufsiz;

        char *_tmpfname;

        };

typedef struct _iobuf FILE;

 

ÀÌ ±¸Á¶Ã¼¿¡´Â ½ºÆ®¸²ÀÌ ³»ºÎÀûÀ¸·Î »ç¿ëÇÏ´Â ¹öÆÛ, ¹öÆÛÀÇ Å©±â¿Í ÇöÀç À§Ä¡, ¾×¼¼½ºÇÏ°í ÀÖ´Â ÆÄÀÏÀÇ À̸§ µîÀÌ ÀúÀåµÈ´Ù. ÆÄÀÏ ÀÔÃâ·Â ÇÔ¼öµéÀº ¸ðµÎ ÀÌ ±¸Á¶Ã¼ÀÇ ³»¿ëÀ» ÂüÁ¶ÇÏ¿© µ¿ÀÛÇϵµ·Ï µÇ¾î ÀÖÀ¸¸ç »ç¿ëÀÚ´Â ÀÌ ±¸Á¶Ã¼ÀÇ ¸â¹ö¸¦ Á÷Á¢ ´Ù·ê ÇÊ¿ä°¡ ¾ø´Ù. ÆÄÀÏ ÀÔÃâ·ÂÀ» Çϱâ Àü¿¡ ÀÌ ±¸Á¶Ã¼ÀÇ Æ÷ÀÎÅ͸¦ Çϳª ¼±¾ðÇÏ°í ÀÔÃâ·Â ÇÔ¼ö¿¡°Ô Æ÷ÀÎÅ͸¸ ³Ñ°ÜÁÖ¸é µÈ´Ù.