ÆÄÀÏÀ» ¾×¼¼½ºÇÏ·Á¸é ¸ÕÀú ´ë»ó ÆÄÀÏÀ» ¿¾î¾ß(Open) ÇÑ´Ù. ÆÄÀÏÀ» ¿ÀÇÂÇÑ´Ù´Â °ÍÀº ÆÄÀÏ ÀÔÃâ·ÂÀ» Çϱâ À§ÇÑ Áغñ¸¦ ÇÑ´Ù´Â ¶æÀÌ´Ù. ½ºÆ®¸² ÀÔÃâ·ÂÀ» À§Çؼ´Â ÆÄÀÏÀÇ µ¥ÀÌÅ͸¦ Àá½Ã ÀúÀåÇÏ´Â ³»ºÎ ¹öÆÛ°¡ ÇÊ¿äÇϸç ÆÄÀÏÀÇ ÇöÀç À§Ä¡(FP)¸¦ ÃʱâÈÇØ¾ß Çϴµ¥ ÀÌ·± Áغñ¸¦ ÇÏ´Â °úÁ¤ÀÌ ¿ÀÇÂÀÌ´Ù. ÆÄÀÏÀ» ¿ÀÇÂÇÒ ¶§´Â ´ÙÀ½ ÇÔ¼ö¸¦ »ç¿ëÇÑ´Ù.
FILE *fopen(const char *filename, const char *mode);
ÀÌ ÇÔ¼ö´Â ÁöÁ¤ÇÑ ÆÄÀÏÀ» ¾×¼¼½ºÇϱâ À§ÇÑ Áغñ¸¦ Çϸç ÀÌ Á¤º¸µéÀ» °¡Áö´Â FILEÇü ±¸Á¶Ã¼¸¦ »ý¼ºÇÏ°í ±× Æ÷ÀÎÅ͸¦ ¸®ÅÏÇÑ´Ù. ÀÌ Æ÷ÀÎÅÍ´Â Àß ¹Þ¾Æ µÎ¾ú´Ù°¡ ÀÌÈÄ ÀÔÃâ·Â ÇÔ¼ö·Î Àü´ÞÇØ ÁÖ¸é µÈ´Ù. fopen ÇÔ¼öÀÇ Àμö¿¡ ´ëÇØ ¾Ë¾Æº¸ÀÚ.
¾×¼¼½ºÇÒ ´ë»ó ÆÄÀÏÀÇ À̸§ÀÌ´Ù. ÇÊ¿äÇÒ °æ¿ì µå¶óÀ̺ê¿Í µð·ºÅ丮 °æ·Î¸¦ Àü´ÞÇÒ ¼ö ÀÖÀ¸¸ç ÇöÀç À§Ä¡¸¦ ±âÁØÀ¸·Î ÇÑ »ó´ë °æ·Î¸¦ ÁöÁ¤ÇÒ ¼öµµ ÀÖ´Ù. °æ·Î°¡ »ý·«µÇ°í ÆÄÀÏ À̸§¸¸ ÁÖ¾îÁú °æ¿ì ÇöÀç µð·ºÅ丮¿¡¼ ÆÄÀÏÀ» ã´Â´Ù. µð·ºÅ丮 ±¸ºÐÀÚ·Î »ç¿ëµÇ´Â ¿ª½½·¹½¬ ¹®ÀÚ´Â ¹®ÀÚ¿ ³»¿¡¼ È®Àå¿ Ç¥½Ã¿¡ »ç¿ëµÇ¹Ç·Î ¹Ýµå½Ã \\·Î ½á¾ß ÇÑ´Ù´Â Á¡À» ÁÖÀÇÇÏÀÚ. C:\Data\File.Ext ÆÄÀÏÀ» ¿ÀÇÂÇÏ·Á¸é "C:\\Data\\File.Ext"¶ó°í ½á¾ß ÇÑ´Ù.
ÆÄÀϸíÀÇ ´ë¼Ò¹®ÀÚ ±¸ºÐ ¿©ºÎ´Â ¿î¿µÃ¼Á¦¿¡ µû¶ó ´Ù¸£´Ù. µµ½º³ª À©µµ¿ìÁî´Â ´ë¼Ò¹®ÀÚ¸¦ ±¸ºÐÇÏÁö ¾ÊÀ¸¹Ç·Î ¾Æ¹«·¸°Ô³ª ½áµµ »ó°ü¾øÁö¸¸ À¯´Ð½ºÀÇ ÆÄÀÏ ½Ã½ºÅÛÀº ´ë¼Ò¹®ÀÚ¸¦ ±¸ºÐÇϹǷΠ½ÇÁ¦ ÆÄÀϸíÀÇ ´ë¼Ò¹®ÀÚ ±¸¼º°ú ÀÏÄ¡½ÃÄÑ¾ß ÇÑ´Ù. Test.txt ÆÄÀÏÀ» ¿°í ½ÍÀ» ¶§ TEST.TXT³ª test.txt·Î ÆÄÀϸíÀ» ÁöÁ¤Çϸé À¯´Ð½º³ª ¸®´ª½º´Â ÀÌ ÆÄÀÏÀ» ãÁö ¸øÇÒ °ÍÀÌ´Ù.
¸ðµå´Â ÆÄÀÏÀ» ¾î¶»°Ô ¿ °ÍÀÎÁö¸¦ ÁöÁ¤Çϸç ÆÄÀÏÀ» ¿¾î¼ ¾î¶² ÀÛ¾÷À» ÇÒ °ÍÀΰ¡¿¡ µû¶ó ´Þ¶óÁø´Ù. mode Àμö¿¡ ´ÙÀ½ ¹®ÀÚµéÀÇ Á¶ÇÕÀ» ÁöÁ¤ÇÑ´Ù.
¸ðµå |
¼³¸í |
r |
Àбâ Àü¿ëÀ¸·Î ÆÄÀÏÀ» ¿¬´Ù. ÀÌ ¸ðµå·Î ¿¬ ÆÄÀÏÀº ÀÐÀ» ¼ö¸¸ ÀÖÀ¸¸ç µ¥ÀÌÅ͸¦ ±â·ÏÇÏÁö´Â ¸øÇÑ´Ù. ¸¸¾à ÆÄÀÏÀÌ ¾øÀ» °æ¿ì ¿¡·¯°¡ ¸®ÅϵȴÙ. |
w |
¾²±â À§ÇØ ÆÄÀÏÀ» ¿¬´Ù. ÀÌ ¸ðµå·Î ¿¬ ÆÄÀÏÀº ¾²±â¸¸ °¡´ÉÇϸç ÀÐÁö´Â ¸øÇÑ´Ù. µµ½º³ª À©µµ¿ìÁîÀÇ ÆÄÀÏÀº ¾²±â Àü¿ë ¼Ó¼ºÀÌ ¾øÁö¸¸ ½ºÆ®¸²Àº ¾²±â Àü¿ë »óÅ·Π¿ ¼ö ÀÖ´Ù. ÆÄÀÏÀÌ ¾øÀ¸¸é »õ·Î ¸¸µé°í ÀÌ¹Ì Á¸ÀçÇÑ´Ù¸é ±âÁ¸ÀÇ ÆÄÀÏÀº Áö¿öÁø´Ù. |
a |
Ãß°¡¸¦ À§ÇØ ÆÄÀÏÀ» ¿¬´Ù. Ãß°¡¶õ ÆÄÀÏÀÇ ³¡¿¡ ´Ù¸¥ Á¤º¸¸¦ ´õ ½á ³Ö´Â´Ù´Â ¶æÀÌ´Ù. ÀÌ ¸ðµå·Î ¿¬ ÆÄÀÏÀº ¿ÀÇ Á÷ÈÄ¿¡ FP°¡ ÆÄÀÏÀÇ ³¡À¸·Î À̵¿ÇÑ´Ù. ÆÄÀÏÀÌ ¾øÀ¸¸é »õ·Î ¸¸µç´Ù. |
r+ |
ÀÐ°í ¾²±â°¡ °¡´ÉÇϵµ·Ï ÆÄÀÏÀ» ¿¬´Ù. ÆÄÀÏÀÌ ¾øÀ» °æ¿ì ¿¡·¯°¡ ¸®ÅϵȴÙ. |
w+ |
ÀÐ°í ¾²±â°¡ °¡´ÉÇϵµ·Ï ÆÄÀÏÀ» ¿¬´Ù. ÆÄÀÏÀÌ ¾øÀ» °æ¿ì »õ·Î ¸¸µç´Ù. |
a+ |
Àбâ¿Í Ãß°¡°¡ °¡´ÉÇϵµ·Ï ÆÄÀÏÀ» ¿¬´Ù. ÆÄÀÏÀÌ ¾øÀ¸¸é »õ·Î ¸¸µç´Ù. |
fopenÀÇ µÎ ¹ø° Àμö mode¿¡´Â ¿ÀÇ ¸ðµå¿Ü¿¡µµ ÆÄÀÏÀÇ ÇüŸ¦ ÁöÁ¤ÇÏ´Â Ç÷¡±×¸¦ Ãß°¡·Î ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. ¿°íÀÚ ÇÏ´Â ÆÄÀÏÀÌ ÅؽºÆ® ÆÄÀÏÀ̸é t¸¦ ºÙÀÌ°í ÀÌÁø ÆÄÀÏÀ̸é b¸¦ ºÙÀδÙ. ÆÄÀÏ ÇüÅ¿¡ ¾Æ¹«·± ÁöÁ¤ÀÌ ¾øÀ¸¸é Àü¿ªº¯¼ö _fnmodeÀÇ °ªÀÌ »ç¿ëµÈ´Ù. ÀÌÁø ÆÄÀÏÀº ¾Æ¹«·± º¯È¯¾øÀÌ ÀÐÇôÁöÁö¸¸ ÅؽºÆ® ÆÄÀÏ ¸ðµå·Î ÆÄÀÏÀ» ¿¸é ´ÙÀ½ µÎ °¡Áö º¯È¯À» ÇÑ´Ù.
¨ç °³Çà Äڵ带 ÀǹÌÇÏ´Â CR/LF Á¶ÇÕÀº LF·Î º¯È¯µÇ¾î ÀÐÇôÁö¸ç LF¸¦ ±â·ÏÇϸé CR/LF°¡ Ãâ·ÂµÈ´Ù. ÀÌ·± º¯È¯À» ÇØ ÁÖ´Â ÀÌÀ¯´Â C ¹®ÀÚ¿ Ãâ·Â ÇÔ¼öµéÀº °³ÇàÀ» À§ÇØ È®Àå¿ LF(\n)¸¦ »ç¿ëÇϱ⠶§¹®ÀÌ´Ù.
¨è ÆÄÀÏÀÇ ³¡À» ³ªÅ¸³»´Â Ctrl+Z(0x1A)´Â EOF(-1)·Î º¯È¯µÇ¾î ÀÐÇôÁø´Ù. ´Ü "a+" ¸ðµå·Î ¿¾úÀ» ¶§´Â ³¡ºÎºÐ¿¡ µ¥ÀÌÅ͸¦ Ãß°¡ÇÒ ¼ö ÀÖµµ·Ï Ctrl+Z¸¦ Á¦°ÅÇÑ´Ù.
¿ÀÇ ¸ðµå¿Í ÆÄÀÏ ÇüÅ°¡ mode Àμö¿¡ °°ÀÌ ±â·ÏµÇ´Âµ¥ ¿ÀÇ ¸ðµå°¡ ¸ÕÀú ¿À°í ÆÄÀÏ ÇüÅ°¡ µÚ¿¡ ¿À´Â Çü½ÄÀ¸·Î ½á¾ß ÇÑ´Ù. ´Ü, +¹®ÀÚ´Â ÆÄÀÏ ÇüÅ ´ÙÀ½¿¡ ¿Íµµ »ó°ü¾ø´Ù. ´ÙÀ½ÀÌ modeÀμöÀÇ ¿¹Àε¥ ¹®ÀÚ¿À̹ǷΠ¹Ýµå½Ã °ãµû¿ÈÇ¥¸¦ ½Î ÁÖ¾î¾ß ÇÑ´Ù.
¢º "rt" : ÅؽºÆ® ÆÄÀÏÀ» Àбâ Àü¿ëÀ¸·Î ¿¬´Ù.
¢º "wb" : ÀÌÁø ÆÄÀÏÀ» ¾²±â Àü¿ëÀ¸·Î ¿¬´Ù.
¢º "r+b" : ÀÌÁø ÆÄÀÏÀ» Àбâ, ¾²±â °¡´ÉÇϵµ·Ï ¿¬´Ù. "rb+"·Î ¾µ ¼öµµ ÀÖ´Ù.
ÀÌ¿Ü¿¡ mode Àμö¿¡´Â ij½Ã¸¦ °ü¸®ÇÏ´Â ¹æ¹ý°ú Àӽà ÆÄÀÏ »ý¼º¿¡ ´ëÇÑ ¸î °¡Áö Ç÷¡±×¸¦ ´õ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.
fopenÀº ÁöÁ¤ÇÑ ÆÄÀÏÀ» ÁöÁ¤ÇÑ ¸ðµå·Î ¿°í ÀÔÃâ·Â¿¡ ÇÊ¿äÇÑ FILE ±¸Á¶Ã¼¸¦ »ý¼ºÇÑ ÈÄ ±× Æ÷ÀÎÅ͸¦ ¸®ÅÏÇÑ´Ù. ¸¸¾à ¿¡·¯°¡ ¹ß»ýÇϸé NULLÀ» ¸®ÅÏÇÑ´Ù. ÆÄÀÏ ÀÔÃâ·Â½Ã¿¡´Â ¿©·¯ °¡Áö ÀÌÀ¯·Î ¿¡·¯°¡ ¹ß»ýÇÒ ¼ö ÀÖÀ¸¹Ç·Î ÀÌ ÇÔ¼öÀÇ ¸®ÅÏ°ªÀº ¹Ýµå½Ã Á¡°ËÇØ º¸¾Æ¾ß ÇÑ´Ù. ÆÄÀÏÀÌ ¾ø°Å³ª µð½ºÅ© ¿ë·®ÀÌ ºÎÁ·Çϰųª ÂøÅ»½Ä ¹Ìµð¾îÀÇ ¹®ÀÌ ¿·Á Àְųª ÇÏ´Â ÀÌÀ¯·Î ¾ðÁ¦µçÁö ¿¡·¯°¡ ¹ß»ýÇÒ ¼ö ÀÖ´Ù. ±×·¡¼ fopen ÇÔ¼ö´Â Åë»ó ´ÙÀ½°ú °°Àº ¹æ¹ýÀ¸·Î »ç¿ëÇÑ´Ù.
FILE *f;
f=fopen("c:\\¿µÈ\\¿µ±¸¿Í¶¯Ä¥ÀÌ.avi","rb");
if (f == NULL) {
printf("¾ó¾¾±¸. ÆÄÀÏÀÌ ¾È º¸À̳׿ä\n");
}
fopenÀ¸·Î ÆÄÀÏ ¿±â¿¡ ¼º°øÇßÀ¸¸é °¢Á¾ ÀÔÃâ·Â ÇÔ¼ö¸¦ È°¿ëÇÏ¿© ÆÄÀÏÀÇ µ¥ÀÌÅ͸¦ ¾×¼¼½ºÇÒ ¼ö ÀÖ´Ù. ÆÄÀÏÀ» ´Ù »ç¿ëÇÑ ÈÄ¿¡´Â ÆÄÀÏÀ» ´Ý¾Æ¾ß Çϴµ¥ À̶§´Â ´ÙÀ½ ÇÔ¼ö¸¦ »ç¿ëÇÑ´Ù.
int fclose(FILE *stream);
ÀÌ ÇÔ¼ö´Â ¹öÆÛ¿¡ ³²¾ÆÀÖ´Â µ¥ÀÌÅ͸¦ ÆÄÀÏ·Î ¿ÏÀüÈ÷ Ãâ·Â(flush)ÇÏ°í ÆÄÀÏ ÀÔÃâ·ÂÀ» À§ÇØ ³»ºÎÀûÀ¸·Î »ý¼ºÇß´ø FILE ±¸Á¶Ã¼¸¦ ÇØÁ¦ÇÑ´Ù. ´Ù »ç¿ëÇÑ ÆÄÀÏÀº ÀÌ ÇÔ¼ö·Î ¹Ýµå½Ã ´Ý¾Æ¾ß ÇÑ´Ù.