17-3.Àú¼öÁØ ÆÄÀÏ ÀÔÃâ·Â

17-3-°¡.ÆÄÀÏ ÇÚµé

Àú¼öÁØ ÆÄÀÏ ÀÔÃâ·Â ¹æ¹ýÀº ¿î¿µÃ¼Á¦(DOS, À©µµ¿ìÁî)°¡ ÆÄÀÏÀ» °ü¸®ÇÏ´Â ¹æ¹ý°ú µ¿ÀÏÇÏ´Ù. °í¼öÁØÀº ÆÄÀÏÀ» ½ºÆ®¸²À̶ó´Â ³í¸®ÀûÀÎ ´ë»óÀ¸·Î Ãë±ÞÇÒ ¼ö ÀÖµµ·Ï Çϴµ¥ ºñÇØ Àú¼öÁØÀº ÆÄÀÏÀ» ÇÚµé·Î °ü¸®ÇÑ´Ù´Â °ÍÀÌ Æ¯Â¡ÀÌ´Ù. ½ºÆ®¸²¿¡ ºñÇØ ÇÚµéÀ» »ç¿ëÇÏ´Â ¹æ¹ýÀÌ Á¶±Ý ´õ ¾î·ÆÁö¸¸ ¼º´ÉÀº ´õ ÁÁ´Ù. Àú¼öÁØ ÆÄÀÏ ÀÔÃâ·Â ÇÔ¼öÀÇ À̸§ ¾Õ¿¡´Â _¹®ÀÚ°¡ Àִµ¥ _·Î ½ÃÀÛÇϴµ¥ ÇÔ¼öµéÀº Ç¥ÁØÀÌ ¾Æ´Ï¶ó È®ÀåµÈ ÇÔ¼ö¶ó´Â ¶æÀÌ´Ù. ºñÁÖ¾ó C++¿¡¼­´Â _°¡ ¾ø´Â ÇÔ¼ö¸íµµ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï Áߺ¹ Á¤ÀǵǾî ÀÖ´Ù.

Àú¼öÁØ ÆÄÀÏ ÀÔÃâ·ÂÀ» ÇÒ ¶§´Â ¸ÕÀú ´ë»ó ÆÄÀÏÀ» ¿­¾î ÇÚµéÀ» ¾ò¾î¾ß ÇÑ´Ù. ÇÚµéÀº ¿­·ÁÁø ÆÄÀÏÀ» ´ëÇ¥ÇÏ´Â °ªÀ̸ç Çڵ鿡´Â ÆÄÀÏÀ» ¾×¼¼½ºÇϱâ À§ÇÑ ¸ðµç Á¤º¸°¡ ÀúÀåµÇ¾î ÀÖ´Ù. ÆÄÀÏÀ» ¿­°í ´ÝÀ» ¶§´Â ´ÙÀ½ µÎ ÇÔ¼ö¸¦ »ç¿ëÇÑ´Ù.

 

int _open(const char *filename, int oflag [,int pmode] );

int _close(int fd);

 

filename Àμö·Î ¿­°íÀÚ ÇÏ´Â ÆÄÀÏÀÇ °æ·Î¸¦ Áִµ¥ µå¶óÀ̺ê¿Í µð·ºÅ丮 Á¤º¸¸¦ Æ÷ÇÔÇÑ ¿ÏÀü °æ·Î·Î ÁÙ ¼öµµ ÀÖ°í ÇöÀç µð·ºÅ丮¸¦ ±âÁØÀ¸·Î ÇÑ »ó´ë °æ·Î·Î ÁÙ ¼öµµ ÀÖ´Ù. oflag Àμö¿¡´Â ÆÄÀÏÀ» ¾î¶² ¸ðµå·Î ¿­ °ÍÀÎÁö¸¦ ÁöÁ¤ÇÏ´Â ´ÙÀ½°ú °°Àº Ç÷¡±×µéÀ» ÁØ´Ù. OR ¿¬»êÀÚ·Î ¿©·¯ °³ÀÇ Ç÷¡±×¸¦ ÇѲ¨¹ø¿¡ ÁöÁ¤ÇÒ ¼öµµ ÀÖ´Ù.

 

Ç÷¡±×

¼³¸í

_O_BINARY

ÀÌÁø ¸ðµå·Î ¿¬´Ù.

_O_TEXT

ÅؽºÆ® ¸ðµå·Î ¿¬´Ù.

_O_CREAT

»õ·Î ÆÄÀÏÀ» ¸¸µé¸ç ÆÄÀÏÀÌ ÀÌ¹Ì Á¸ÀçÇÏ¸é ¾Æ¹« °Íµµ ÇÏÁö ¾Ê´Â´Ù.

_O_RDONLY

Àбâ Àü¿ëÀ¸·Î ¿¬´Ù.

_O_RDWR

Àб⠾²±â°¡ °¡´ÉÇϵµ·Ï ¿¬´Ù.

_O_WRONLY

¾²±â Àü¿ëÀ¸·Î ¿¬´Ù.

_O_TRUNC

ÆÄÀÏÀ» ¿­°í Å©±â¸¦ 0À¸·Î ¸¸µç´Ù. _O_CREAT¿Í ÇÔ²² »ç¿ëµÉ °æ¿ì »õ·Î ÆÄÀÏÀ» ¸¸µç´Ù.

_O_APPEND

FP¸¦ ÆÄÀÏ ³¡À¸·Î º¸³½´Ù.

_O_RANDOM

ij½Ã¸¦ ÀÓÀÇ Á¢±Ù ¹æ½ÄÀ¸·Î ÃÖÀûÈ­ÇÑ´Ù.

_O_SEQUENTIAL

ij½Ã¸¦ ¼øÂ÷ Á¢±Ù ¹æ½ÄÀ¸·Î ÃÖÀûÈ­ÇÑ´Ù.

_O_SHORT_LIVED

_O_CREAT Ç÷¡±×¿Í ÇÔ²² »ç¿ëµÇ¸ç Àӽà ÆÄÀÏÀ» ¸¸µç´Ù.

_O_TEMPORARY

_O_CREAT Ç÷¡±×¿Í ÇÔ²² »ç¿ëµÇ¸ç ÆÄÀÏÀ» ´ÝÀ» ¶§ »èÁ¦ÇÑ´Ù.

_O_EXCL

_O_CREAT Ç÷¡±×¿Í ÇÔ²² »ç¿ëµÇ¸ç ÆÄÀÏÀÌ ÀÌ¹Ì Á¸ÀçÇÒ °æ¿ì ¿¡·¯¸¦ ¸®ÅÏÇÑ´Ù.

 

¸¶Áö¸· Àμö pmode´Â ÆÄÀÏÀÇ º¸¾È ¼Ó¼ºÀ» ÁöÁ¤Çϴµ¥ _O_CREAT Ç÷¡±×·Î ÆÄÀÏÀ» »õ·Î ¸¸µé ¶§¸¸ Àû¿ëµÈ´Ù. ³ª¸ÓÁö Ç÷¡±×·Î ÆÄÀÏÀ» ¿­ ¶§ ÀÌ Àμö´Â »ý·«ÇÑ´Ù. »ý¼ºÇÑ ÆÄÀÏÀ» ´ÝÀ» ¶§ º¸¾È ¼Ó¼ºÀÌ Àû¿ëµÇ´Âµ¥ ÀÌ¹Ì ÆÄÀÏÀÌ Á¸ÀçÇÑ´Ù¸é pmode Àμö´Â ¹«½ÃµÈ´Ù. ÆÄÀÏÀ» Àб⠰¡´ÉÇϵµ·Ï ÇÏ·Á¸é _S_IREAD Ç÷¡±×¸¦ ÁÖ°í ¾²±â °¡´ÉÇϵµ·Ï ÇÏ·Á¸é _S_IWRITE¸¦ ÁÖ¸ç µÎ Ç÷¡±×¸¦ ¸ðµÎ ´Ù ÁÙ ¼öµµ ÀÖ´Ù.

_S_IWRITE Ç÷¡±×¸¦ ÁÖ¸é ÀÌ ÆÄÀÏÀº ±â·Ï °¡´ÉÇÑ ÆÄÀÏÀÌ µÇ¸ç _S_IREAD¸¸ ÁÖ¸é Àбâ Àü¿ëÀÇ ÆÄÀÏÀÌ µÈ´Ù. À©µµ¿ìÁî¿¡¼­´Â Á¸ÀçÇÏ´Â ¸ðµç ÆÄÀÏÀ» ÀÐÀ» ¼ö ÀÖÀ¸¹Ç·Î _S_IREAD¸¦ ÁÖÁö ¾Ê¾Æµµ ÆÄÀÏÀ» ÀÐÀ» ¼ö ÀÖ´Ù. _S_* ¸ÅÅ©·Î »ó¼öµéÀº sys/stat.h Çì´õ ÆÄÀÏ¿¡ Á¤ÀǵǾî ÀÖÀ¸¹Ç·Î ÀÌ ¸ÅÅ©·Î¸¦ »ç¿ëÇÏ·Á¸é sys/stat.h¸¦ ¹Ýµå½Ã ÀÎŬ·çµåÇØ¾ß ÇÑ´Ù.

_openÀº ÆÄÀÏÀ» ¹«»çÈ÷ ¿­¾úÀ» °æ¿ì ÆÄÀÏÀÇ ÇÚµéÀ» ¸®ÅÏÇϴµ¥ ÀÌ °ªÀº Á¤¼öÇü º¯¼ö¿¡ Àß ÀúÀåÇØ µÎ¾ú´Ù°¡ ÀÌÈÄ Àú¼öÁØ ÆÄÀÏ ¾×¼¼½º ÇÔ¼ö·Î Àü´ÞÇÑ´Ù. °í¼öÁØ ÆÄÀÏ ÀÔÃâ·Â ÇÔ¼ö´Â FILE *ÇüÀ» »ç¿ëÇϴµ¥ ºñÇØ Àú¼öÁØ ÆÄÀÏ ÀÔÃâ·Â ÇÔ¼ö´Â ÇÚµéÀ» »ç¿ëÇÑ´Ù. ¿¡·¯ ¹ß»ý½Ã -1À» ¸®ÅÏÇϴµ¥ ¾ÈÀüÀ» À§ÇØ ÀÌ ¸®ÅÏ°ªÀ» ¹Ýµå½Ã Á¡°ËÇØ º¼ ÇÊ¿ä°¡ ÀÖ´Ù. ÆÄÀÏ ÀÔÃâ·ÂÀÌ ³¡³­ ÈÄ _close ÇÔ¼ö·Î ÆÄÀÏÀ» ´Ý´Â´Ù.