CreateFile

¿øÇü

HANDLE CreateFile(LPCTSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES pSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile);

MFC ¿øÇü

ÇØ´çÇÏ´Â ÇÔ¼ö ¾øÀ½

Àμö

¢ºlpFileName : »ý¼ºÇÏ°íÀÚ ÇÏ´Â ÆÄÀÏ(¶Ç´Â ¿ÀºêÁ§Æ®)ÀÇ À̸§À» ÁöÁ¤ÇÑ´Ù. ¿ÀºêÁ§Æ®ÀÇ À̸§Àº ÃÖ´ë MAX_PATHÀÇ ±æÀÌ·Î ÁöÁ¤ÇÒ ¼ö ÀÖÀ¸³ª NT/2000¿¡¼­ À¯´ÏÄÚµå·Î ÄÄÆÄÀÏÇÒ °æ¿ì´Â 32000ÀÚ±îÁöÀÇ ±æÀ̸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. À̶§ ÆÄÀϸíÀº "\\?\"·Î ½ÃÀ۵Ǿî¾ß ÇÑ´Ù. ÆÄÀÏÀÇ °æ¿ì ¿ÏÀü °æ·Î¸¦ ÁÙ ¼öµµ ÀÖ°í ÇöÀç µð·ºÅ丮¸¦ ±âÁØÀ¸·Î ÇÑ »ó´ë °æ·Î·Î ÁÙ ¼öµµ ÀÖ´Ù.

¢ºdwDesiredAccess : ÆÄÀÏ¿¡ ´ëÇÑ ¾×¼¼½º ±ÇÇÑÀ» ÁöÁ¤ÇÑ´Ù. »ý¼ºÇϰųª ¿¬ ÆÄÀÏ·Î ¾î¶² ÀÛ¾÷À» ÇÒ °ÍÀΰ¡¿¡ µû¶ó ÀûÀýÇÑ ¾×¼¼½º ±ÇÇÑÀ» ÁöÁ¤ÇØ¾ß ÇÑ´Ù. ´ÙÀ½ Ç÷¡±× Áß Çϳª ¶Ç´Â Á¶ÇÕÀ» ÁöÁ¤ÇÒ ¼ö Àִµ¥ ÀÌ Ç÷¡±×µéÀº ¸ðµç ¿ÀºêÁ§Æ®¿¡ °øÅëÀûÀ¸·Î Àû¿ëµÇ´Â ÀϹÝÇü ±ÇÇÑÀÌ´Ù.

Ç÷¡±×

¼³¸í

0

ÀåÄ¡ ¿ÀºêÁ§Æ®¿¡ ´ëÇÑ Äõ¸® ¾×¼¼½º¸¸ ¿äûÇÑ´Ù. ÀÌ ±ÇÇÑÀ¸·Î ÀåÄ¡¸¦ ¿­ °æ¿ì ½ÇÁ¦·Î ÀåÄ¡¸¦ ¾×¼¼½ºÇÏÁö ¾Ê°íµµ ÀåÄ¡ÀÇ Æ¯¼ºÀ» Á¶»çÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î µð½ºÄÏÀÌ ¾ø´Â »óÅ¿¡¼­µµ Ç÷ÎÇÇ µå¶óÀ̺êÀÇ Å¸ÀÔÀ̳ª ¿ë·®µîÀ» Á¶»çÇÏ´Â °ÍÀÌ °¡´ÉÇÏ´Ù.

GENERIC_READ

Àбâ À§ÇÑ ¿ëµµ·Î ÆÄÀÏÀ» ¿¬´Ù. ÀÌ ¾×¼¼½º ±ÇÇÑÀ¸·Î ¿¬ ÆÄÀÏÀº ÀÐÀ» ¼ö¸¸ ÀÖÀ¸¸ç ¾µ ¼ö´Â ¾ø´Ù.

GENERIC_WRITE

¾²±â À§ÇÑ ¿ëµµ·Î ÆÄÀÏÀ» ¿¬´Ù. Àбâ¿Í ¾²±â¸¦ µ¿½Ã¿¡ ÇÏ·Á¸é GENERIC_READ | GENERIC_WRITE Ç÷¡±×¸¦ ÁöÁ¤ÇÏ¸é µÈ´Ù.

¾×¼¼½º ±ÇÇÑÀº °¡±ÞÀûÀ̸é ÃÖ¼ÒÇÑÀ¸·Î ¿äûÇÏ´Â °ÍÀÌ ÁÁ´Ù. ¿¹¸¦ µé¾î Àб⸸ ÇÒ ¿ëµµ·Î ÆÄÀÏÀ» ¿¬´Ù¸é GENERIC_READ Ç÷¡±×¸¸ ÁÖ¾î¾ß ÇÑ´Ù. ºÒÇÊ¿äÇÏ°Ô Àбâ¿Í ¾²±â ¾×¼¼½º ±ÇÇÑÀ» µ¿½Ã¿¡ ¿äûÇÒ °æ¿ì Àбâ Àü¿ë ÆÄÀÏÀ̳ª CD-ROMÀÇ ÆÄÀÏÀ» ¿­Áö ¸øÇÏ°Ô µÈ´Ù.

ÀÌ·± ÀϹÝÇü ±ÇÇÑ ¿Ü¿¡ ¿ÀºêÁ§Æ® °íÀ¯ÀÇ ±ÇÇÑÀ» °°ÀÌ ÁöÁ¤Çϰųª ¾Æ´Ï¸é ÀϹÝÇü ±ÇÇѾøÀÌ Ç¥ÁØ ±ÇÇÑ°ú °íÀ¯Çü ±ÇÇÑÀ¸·Î ¾×¼¼½º ¸¶½ºÅ©¸¦ ±¸¼ºÇÒ ¼öµµ ÀÖ´Ù. °¢ ¿ÀºêÁ§Æ®ÀÇ °íÀ¯ÇÑ ±ÇÇÑ¿¡ ´ëÇؼ­´Â ÇØ´ç ¿ÀºêÁ§Æ®¸¦ ÂüÁ¶Çϱ⠹ٶõ´Ù.

¢ºdwShareMode : ÆÄÀÏÀÇ °øÀ¯ ¸ðµå¸¦ ÁöÁ¤ÇÑ´Ù. °øÀ¯ ¸ðµå¶õ ÆÄÀÏÀÌ ¿­·ÁÁ® ÀÖ´Â »óÅ¿¡¼­ ´Ù¸¥ ÇÁ·Î¼¼½º°¡ ¶Ç ÀÌ ÆÄÀÏÀ» ¿ÀÇÂÇÒ ¶§ À̸¦ Çã°¡ÇÒ °ÍÀΰ¡ ¾Æ´Ñ°¡¸¦ ÁöÁ¤ÇÑ´Ù. ¸¸¾à ÇöÀç ÇÁ·Î¼¼½º°¡ ÆÄÀÏÀ» ¾²°í ÀÖ´Â »óÅ¿¡¼­ ´Ù¸¥ ÇÁ·Î¼¼½º°¡ ÆÄÀÏÀ» ÀÐÀ» ¼ö ¾øµµ·Ï ÇÏ°í ½Í´Ù¸é °øÀ¯ ¸ðµå¸¦ ÁöÁ¤ÇÏÁö ¾Ê¾Æ¾ß ÇÑ´Ù. ´ÙÀ½ Ç÷¡±×µéÀÇ Á¶ÇÕÀ¸·Î °øÀ¯ ¸ðµå¸¦ ÁöÁ¤ÇÑ´Ù.

Ç÷¡±×

¼³¸í

FILE_SHARE_READ

´Ù¸¥ ÇÁ·Î¼¼½º°¡ Àб⠾׼¼½º ±ÇÇÑÀ» ¿äûÇßÀ» ¶§ À̸¦ Çã°¡ÇÑ´Ù. Áï, ÀÌ ÇÁ·Î¼¼½º°¡ ÆÄÀÏÀ» »ç¿ëÇÏ´Â µ¿¾È¿¡µµ ´Ù¸¥ ÇÁ·Î¼¼½º°¡ ÆÄÀÏÀ» ÀÐÀ» ¼ö ÀÖ´Ù.

FILE_SHARE_WRITE

´Ù¸¥ ÇÁ·Î¼¼½º°¡ ¾²±â ¾×¼¼½º ±ÇÇÑÀ» ¿äûÇßÀ» ¶§ À̸¦ Çã°¡ÇÑ´Ù. Áï, ÀÌ ÇÁ·Î¼¼½º°¡ ÆÄÀÏÀ» »ç¿ëÇÏ´Â µ¿¾È¿¡µµ ´Ù¸¥ ÇÁ·Î¼¼½º°¡ ÆÄÀÏ¿¡ µ¥ÀÌÅ͸¦ ¾µ ¼ö ÀÖ´Ù.

FILE_SHARE_DELETE

NT/2000. »èÁ¦ ¾×¼¼½º ±ÇÇÑÀ» ¿äûÇßÀ» ¶§¸¸ À̸¦ Çã°¡ÇÑ´Ù.

¢ºpSecurityAttributes : ÆÄÀÏÀÇ º¸¾È ¼Ó¼ºÀ» ÁöÁ¤ÇÏ´Â SECURITY_ATTRIBUTES ±¸Á¶Ã¼ÀÇ Æ÷ÀÎÅÍÀÌ´Ù. ÀÌ º¸¾È ¼Ó¼º¿¡ µû¶ó »ý¼ºµÇ´Â ÆÄÀÏÀÇ º¸¾È ¼³¸íÀÚ°¡ ´Þ¶óÁö¸ç Â÷Àϵå ÇÁ·Î¼¼½º·Î ÇÚµéÀ» »ó¼ÓÇÒ ¼ö Àִ°¡ÀÇ ¿©ºÎ°¡ °áÁ¤µÈ´Ù. NULLÀ̸é ÇÚµéÀº »ó¼ÓµÉ ¼ö ¾øÀ¸¸ç µðÆúµå º¸¾È ¼³¸íÀÚ°¡ ÇÒ´çµÈ´Ù. ´Ü, ÆÄÀÏÀÇ º¸¾È ¼³¸íÀÚ°¡ ÇÒ´çµÇ±â À§Çؼ­´Â ÆÄÀÏÀÌ ÀúÀåµÇ´Â µð½ºÅ©ÀÇ ÆÄÀÏ ½Ã½ºÅÛÀÌ ¹Ýµå½Ã NTFS·Î Æ÷¸ËµÇ¾î ÀÖ¾î¾ß ÇÑ´Ù.

¢ºdwCreationDisposition : ÆÄÀÏÀ» »ý¼ºÇÒ °ÍÀÎÁö ¿­ °ÍÀÎÁö¸¦ ÁöÁ¤ÇÑ´Ù. ¶ÇÇÑ »ý¼ºÇÏ°íÀÚ ÇÏ´Â ÆÄÀÏÀÌ ÀÌ¹Ì Á¸ÀçÇϰųª ¶Ç´Â ¿­°íÀÚ ÇÏ´Â ÆÄÀÏÀÌ ¾øÀ» °æ¿ìÀÇ µ¿ÀÛÀ» ÁöÁ¤ÇÑ´Ù. ÀûÀýÇÑ ¿¡·¯¸¦ ¸®ÅϹޱâ À§Çؼ­´Â ÀÌ Ç÷¡±×¸¦ ½ÅÁßÇÏ°Ô Àß ÁöÁ¤ÇØ ÁÖ¾î¾ß ÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é ¾ø´Â ÆÄÀÏÀÌ ¿­¸®°Å³ª ±âÁ¸ ÆÄÀÏÀÌ ±úÁö´Â µî ÇÁ·Î±×·¥ÀÌ ¿Àµ¿ÀÛÀ» ÇÒ À§ÇèÀÌ ÀÖ´Ù.

Ç÷¡±×

¼³¸í

CREATE_NEW

ÆÄÀÏÀ» »õ·Î ¸¸µç´Ù. ¸¸¾à ÀÌ¹Ì ÆÄÀÏÀÌ Á¸ÀçÇÑ´Ù¸é ¿¡·¯¸¦ ¸®ÅÏÇÑ´Ù.

CREATE_ALWAYS

Ç×»ó ÆÄÀÏÀ» »õ·Î ¸¸µç´Ù. ¸¸¾à ÀÌ¹Ì ÆÄÀÏÀÌ Á¸ÀçÇÑ´Ù¸é ÇØ´ç ÆÄÀÏÀ» µ¤¾î¾´´Ù. ÀÌ´Â ±âÁ¸ ÆÄÀÏÀ» »èÁ¦ÇÏ°í ´Ù½Ã ¸¸µå´Â °Í°ú °°´Ù. ÆÄÀÏÀÇ Á¸Àç ¿©ºÎ¿¡ »ó°ü¾øÀÌ ¹«Á¶°Ç ÆÄÀÏÀ» »ý¼ºÇÑ´Ù.

OPEN_EXISTING

ÀÌ¹Ì Á¸ÀçÇÏ´Â ÆÄÀÏÀ» ¿¬´Ù. ¸¸¾à ¿­°íÀÚ ÇÏ´Â ÆÄÀÏÀÌ ¾ø´Ù¸é ÀÌ ÇÔ¼ö´Â ¿¡·¯¸¦ ¸®ÅÏÇÑ´Ù. ÆÄÀÏÀÌ ¾Æ´Ñ ÀåÄ¡¸¦ ¿­°íÀÚ ÇÒ ¶§´Â ¹Ýµå½Ã ÀÌ Ç÷¡±×¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.

OPEN_ALWAYS

¹«Á¶°Ç ÆÄÀÏÀ» ¿¬´Ù. ¿­°íÀÚ ÇÏ´Â ÆÄÀÏÀÌ ¾øÀ» °æ¿ì´Â Á÷Á¢ ¸¸µç ÈÄ ÀÌ ÆÄÀÏÀ» ¿¬´Ù. ÆÄÀÏÀÌ ¾ø¾îµµ ¿¡·¯¸¦ ¸®ÅÏÇÏÁö ¾ÊÀ¸¹Ç·Î ±âÁ¸ ÆÄÀÏÀ» ¿­ ¶§´Â ÀÌ Ç÷¡±×¸¦ »ç¿ëÇÏÁö ¸»¾Æ¾ß ÇÑ´Ù.

TRUNCATE_EXISTING

ÆÄÀÏÀ» ¿¬ ÈÄ Å©±â¸¦ 0À¸·Î ¸¸µç´Ù. Áï, ±âÁ¸ ÆÄÀÏÀ» ´Ù½Ã ÀÛ¼ºÇÏ°íÀÚ ÇÒ ¶§ ÀÌ Ç÷¡±×¸¦ »ç¿ëÇÑ´Ù. ÀÌ Ç÷¡±×¸¦ »ç¿ëÇÏ´Â ÇÁ·Î¼¼½º´Â ¾²±â ¾×¼¼½º ±ÇÇÑÀ¸·Î ÆÄÀÏÀ» ¿­¾î¾ß Çϸç ÆÄÀÏÀÌ ¾øÀ» °æ¿ì´Â ¿¡·¯¸¦ ¸®ÅÏÇÑ´Ù.

¢ºdwFlagsAndAttributes : »ý¼ºÇÒ ÆÄÀÏÀÇ ¼Ó¼º ¶Ç´Â ±âŸ ¿ÉÁ§Æ®ÀÌ ¼Ó¼ºÀ» ÁöÁ¤ÇÑ´Ù. ÆÄÀÏÀÇ ¼Ó¼ºÀº ´ÙÀ½ Ç÷¡±×µéÀÇ Á¶ÇÕÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù.

Ç÷¡±×

¼³¸í

FILE_ATTRIBUTE_ARCHIVE

±â·Ï ¼Ó¼ºÀ» ¼³Á¤ÇÑ´Ù. ÆÄÀÏÀÇ ±â·Ï ¼Ó¼ºÀº ¹é¾÷, ¸®½ºÅä¾î ÇÁ·Î±×·¥¿¡ ÀÇÇØ »ç¿ëµÇ¸ç ÀÌ ÆÄÀÏÀÌ ¹é¾÷µÇ¾î¾ß ÇÔÀ» ¾Ë¸®´Â Ç÷¡±×ÀÌ´Ù.

FILE_ATTRIBUTE_ENCRYPTED

ÆÄÀÏÀ» ¾ÏȣȭÇÑ´Ù. ÆÄÀÏÀÇ °æ¿ì ÆÄÀÏÀÇ µ¥ÀÌÅ͸¦ ¾ÏȣȭÇÏ¸ç µð·ºÅ丮ÀÇ °æ¿ì ÀÌÈĺÎÅÍ »ý¼ºµÇ´Â ÆÄÀÏ°ú ¼­ºê µð·ºÅ丮¸¦ ¾ÏȣȭÇϵµ·Ï ÇÑ´Ù. ½Ã½ºÅÛ ÆÄÀÏ¿¡´Â Àû¿ëµÇÁö ¾Ê´Â´Ù.

FILE_ATTRIBUTE_HIDDEN

¼û±è ÆÄÀÏ·Î »ý¼ºÇÑ´Ù. ¼û±è ÆÄÀÏÀº Åë»óÀûÀÎ ¹æ¹ýÀ¸·Î´Â º¸ÀÌÁö ¾ÊÀ¸¹Ç·Î ¸ñ·Ï¿¡ ³ªÅ¸³ªÁö ¾Ê´Â´Ù.

FILE_ATTRIBUTE_NORMAL

¾Æ¹«·± ¼Ó¼ºµµ °¡ÁöÁö ¾Ê´Â ÆÄÀÏÀ» ¸¸µç´Ù. ÀÌ ÀÌ Ç÷¡±×´Â ´Üµ¶À¸·Î »ç¿ëµÉ ¶§¸¸ À¯È¿ÇÏ¸ç ´Ù¸¥ Ç÷¡±×¿Í ÇÔ²² »ç¿ëÇϸé ÇØ´ç Ç÷¡±×ÀÇ ¼Ó¼ºÀÌ ¼³Á¤µÇ´Ù.

FILE_ATTRIBUTE_NOT_CONTENT_INDEXED

ÄÁÅÙÆ® Àε¦½Ì ¼­ºñ½º¿¡ ´ëÇØ À妽ºµÇÁö ¾Êµµ·Ï ÇÑ´Ù.

FILE_ATTRIBUTE_OFFLINE

µ¥ÀÌÅÍ°¡ ¿ÀÇÁ¶óÀÎ »óÅÂÀ̸ç Áï½Ã »ç¿ëÇÒ ¼ö ÀÖ´Â »óÅ°¡ ¾Æ´Ï´Ù. ÀÌ ¼Ó¼ºÀº À©µµ¿ìÁî 2000ÀÇ °èÃþÀû ÀúÀå °ü¸®ÀÚÀÇ ¿ø°Ý ÀúÀå¼Ò¿¡ ÀÇÇØ »ç¿ëµÇ¹Ç·Î ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ ÀÌ Ç÷¡±×¸¦ Á÷Á¢ »ç¿ëÇؼ­´Â ¾ÈµÈ´Ù.

FILE_ATTRIBUTE_READONLY

Àбâ Àü¿ëÀÇ ÆÄÀÏ·Î »ý¼ºÇÑ´Ù. ÀÀ¿ë ÇÁ·Î±×·¥Àº ÀÌ ÆÄÀÏÀÇ ³»¿ëÀ» ÀÐÀ» ¼ö´Â ÀÖÁö¸¸ º¯°æÇϰųª »èÁ¦ÇÒ ¼ö´Â ¾ø´Ù.

FILE_ATTRIBUTE_SYSTEM

½Ã½ºÅÛ ÆÄÀÏ·Î »ý¼ºÇÑ´Ù. ½Ã½ºÅÛ ÆÄÀÏÀº ¿î¿µÃ¼Á¦¿¡ ÀÇÇØ ¹èŸÀûÀ¸·Î »ç¿ëµÇ´Â ÆÄÀÏÀÌ´Ù.

FILE_ATTRIBUTE_TEMPORARY

Àӽà ÆÄÀÏ·Î »ý¼ºÇÑ´Ù. Àӽà ÆÄÀÏÀº µð½ºÅ©·Î °ð¹Ù·Î ÀÔÃâ·ÂÀ» ÇàÇÏÁö ¾Ê°í °¡±ÞÀûÀÌ¸é ¸Þ¸ð¸®»ó¿¡¼­ Àбâ¿Í ¾²±â¸¦ ¼öÇàÇϱ⠶§¹®¿¡ ÀÏ¹Ý ÆÄÀϺ¸´Ù ÀÔÃâ·Â ¼Óµµ°¡ ºü¸£´Ù´Â ÀåÁ¡ÀÌ ÀÖ´Ù. ÀÀ¿ë ÇÁ·Î±×·¥Àº ÀÓ½ÃÆÄÀÏÀ» ´Ù »ç¿ëÇÑ ÈÄ ¹Ýµå½Ã »èÁ¦ÇØ ÁÖ¾î¾ß ÇÑ´Ù.

ÆÄÀÏ ¼Ó¼º°ú ÇÔ²² ´ÙÀ½ Ç÷¡±×µéµµ °°ÀÌ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.

Ç÷¡±×

¼³¸í

FILE_FLAG_WRITE_THROUGH

°¡±ÞÀûÀ̸é ij½Ã¸¦ »ç¿ëÇÏÁö ¾Ê°í °ð¹Ù·Î µð½ºÅ©·Î ÀÔÃâ·ÂÀ» ÇàÇϵµ·Ï ÇÑ´Ù. ±×·¯³ª ÀÌ Ç÷¡±×¸¦ ÁöÁ¤Çصµ ½Ã½ºÅÛÀÌ ¾²±â ij½Ã¸¦ »ç¿ëÇÒ ¼ö´Â ÀÖµÇ ´Ù¸¸ ³Ê¹« ´Ê°Ô ¹öÆÛ¸¦ ºñ¿ìÁö ¾Êµµ·Ï ÇØ ÁØ´Ù. ±â·Ï ÈÄ °ð¹Ù·Î »ç¿ëÇØ¾ß ÇÏ´Â µ¥ÀÌÅÍ´Â ÀÌ Ç÷¡±×¸¦ ÁÖ´Â °ÍÀÌ ÁÁ´Ù.

FILE_FLAG_OVERLAPPED

ÆÄÀÏ ÀÔÃâ·ÂÀÌ ¿ÏÀüÈ÷ ³¡³¯ ¶§±îÁö ´ë±âÇÏÁö ¾Ê°í °ð¹Ù·Î ¸®ÅÏÇÏ´Â ºñµ¿±â ÀÔÃâ·Â ¸ðµå·Î ÆÄÀÏÀ» ¿¬´Ù. ÀÌ ¸ðµå¸¦ »ç¿ëÇϸé ÀÔÃâ·Â ½Ã°£ÀÌ ¿À·¡ °É¸± ¶§ ¹é±×¶ó¿îµå·Î ÆÄÀÏÀ» ¾×¼¼½ºÇÒ ¼ö ÀÖÀ¸¸ç ÇϳªÀÇ ÆÄÀÏ ÇÚµé·Î µ¿½Ã¿¡ ¾×¼¼½º°¡ °¡´ÉÇÏ´Ù. ÀÌ ¸ðµå·Î ¿­·ÁÁø ÆÄÀÏÀ» ¾×¼¼½ºÇÏ´Â ÇÔ¼ö´Â OVERLAPPED ±¸Á¶Ã¼¸¦ ÃʱâÈ­ÇÑ ÈÄ Á¦°øÇØ¿© ÇÑ´Ù.

ºñµ¿±â ÀÔÃâ·Â¿¡ °üÇÑ »ó¼¼ÇÑ ³»¿ëÀº 34-1-»çÀýÀ» ÂüÁ¶Çϱ⠹ٶõ´Ù.

FILE_FLAG_NO_BUFFERING

¹öÆÛ¸µÀ̳ª ij½Ã¸¦ ÇÏÁö ¾ÊÀ¸¹Ç·Î½á ºñµ¿±â È¿À²À» ±Ø´ëÈ­ÇÑ´Ù. ÀÌ Ç÷¡±×¸¦ »ç¿ëÇϱâ À§Çؼ­´Â ¸î°¡Áö ¿ä±¸ »çÇ×À» ÃæÁ·½ÃÄÑ¾ß ÇÑ´Ù.

FILE_FLAG_RANDOM_ACCESS

ÆÄÀÏÀ» ·£´ýÀ¸·Î ¾×¼¼½ºÇÑ´Ù´Â °ÍÀ» ½Ã½ºÅÛ¿¡°Ô ¾Ë·ÁÁØ´Ù. ½Ã½ºÅÛÀº ij½Ã¸¦ ÃÖÀûÈ­ÇÒ ¶§ ÀÌ Á¤º¸¸¦ »ç¿ëÇÑ´Ù. ÀÌ Ç÷¡±×´Â ¾îµð±îÁö³ª ½Ã½ºÅÛ¿¡ ´ëÇÑ ÈùÆ®ÀÏ »ÓÀÌ´Ù.

FILE_FLAG_SEQUENTIAL_SCAN

ÆÄÀÏÀ» ¼øÂ÷ ¾×¼¼½ºÇÑ´Ù´Â °ÍÀ» ½Ã½ºÅÛ¿¡ ¾Ë·ÁÁØ´Ù. ½Ã½ºÅÛÀº ij½Ã ÃÖÀûÈ­¿¡ ÀÌ Á¤º¸¸¦ »ç¿ëÇÏ¿© ¼øÂ÷ ¾×¼¼½ºÀÇ È¿À²À» ³ôÀÏ ¼ö ÀÖ´Â ¹æ½ÄÀ¸·Î ij½Ã¸¦ »ç¿ëÇÑ´Ù. ±×·¯³ª ÀÌ Ç÷¡±×¸¦ ÁöÁ¤Çß´Ù°í Çؼ­ ·£´ý ¾×¼¼½º¸¦ ÇÏÁö ¸øÇÏ´Â °ÍÀº ¾Æ´Ï´Ù. Å« ÆÄÀÏÀ» ´ëºÎºÐ ¼øÂ÷ÀûÀ¸·Î ¾×¼¼½ºÇÏ°í µå¹°°Ô ·£´ý ¾×¼¼½º¸¦ ÇÒ °æ¿ì ÀÌ Ç÷¡±×¸¦ ÁöÁ¤Çϸé È¿À²À» ³ôÀÏ ¼ö ÀÖ´Ù.

FILE_FLAG_DELETE_ON_CLOSE

ÀÌ ÆÄÀÏ¿¡ ´ëÇÑ ¸ðµç ÇÚµéÀÌ ´ÝÈ÷¸é ÆÄÀÏÀ» »èÁ¦Çϵµ·Ï ÇÑ´Ù.

FILE_FLAG_BACKUP_SEMANTICS

NT/2000 ÀÌÈÄ. ¹é¾÷, ¸®½ºÅä¾î¸¦ À§ÇØ ÆÄÀÏÀ» ¿¬´Ù. ÀÌ °æ¿ì ½Ã½ºÅÛÀº º¸¾È üũ¸¦ ¹«½ÃÇÑ´Ù.

FILE_FLAG_POSIX_SEMANTICS

ÆÄÀÏÀ» POSIX ±ÔÄ¢´ë·Î ¾×¼¼½ºÇÑ´Ù. ÆÄÀϸíÀº ´ë¼Ò¹®ÀÚ¸¦ ±¸ºÐÇÏ¸ç ´ë¼Ò¹®ÀÚ¸¸ ´Ù¸¥ °°Àº ÆÄÀϸíÀ» ¾×¼¼½ºÇÒ ¼ö ÀÖ´Ù. ÀÌ·¸°Ô »ý¼ºµÈ ÆÄÀÏÀº 16ºñÆ® ÇÁ·Î±×·¥¿¡¼­ ¾×¼¼½ºÇÒ ¼ö ¾ø´Ù.

FILE_FLAG_OPEN_REPARSE_POINT

Specifying this flag inhibits the reparse behavior of NTFS reparse points. When the file is opened, a file handle is returned, whether the filter that controls the reparse point is operational or not. This flag cannot be used with the CREATE_ALWAYS flag.

FILE_FLAG_OPEN_NO_RECALL

Indicates that the file data is requested, but it should continue to reside in remote storage. It should not be transported back to local storage. This flag is intended for use by remote storage systems or the Hierarchical Storage Management system.

¢ºhTemplateFile : »ý¼ºµÉ ÆÄÀÏÀÇ ¼Ó¼ºÀ» Á¦°øÇÒ ÅÛÇø´ ÆÄÀÏÀÌ´Ù. 95/98Àº ÅÛÇø´ ÆÄÀÏÀ» Áö¿øÇÏÁö ¾ÊÀ¸¹Ç·Î ¹Ýµå½Ã NULLÀ̾î¾ß ÇÑ´Ù.

¸®ÅÏ

»ý¼º ¶Ç´Â ¿¬ ÆÄÀÏÀÇ ÇÚµéÀ» ¸®ÅÏÇÑ´Ù. ½ÇÆÐÇÒ °æ¿ì INVALID_HANDLE_VALUE¸¦ ¸®ÅÏÇϴµ¥ ÀÌ °ªÀº NULL°ú´Â ´Ù¸£¹Ç·Î NULL°ú ºñ±³Çؼ­´Â ¾ÈµÈ´Ù. Áï ´ÙÀ½°ú °°Àº ¿¡·¯ 󸮴 À߸øµÈ °ÍÀ̹ǷΠÁÖÀÇÇϱ⠹ٶõ´Ù.

hFile=CreateFile(...
if (hFile == NULL) {
¿¡·¯Ã³¸®
}

ÀÌ ÇÔ¼ö¸¦ ÃâÇϱâ Àü¿¡ ÆÄÀÏÀÌ ÀÌ¹Ì Á¸ÀçÇÏ°í ÀÖ¾úÀ¸¸é GetLastError´Â ERROR_ALREADY_EXISTS¸¦ ¸®ÅÏÇÑ´Ù.

¼³¸í

ÀÌ ÇÔ¼ö´Â ÆÄÀÏÀ» »ý¼ºÇÏ´Â °¡Àå ±âº»ÀûÀÎ ÇÔ¼öÀÌ´Ù. ±×·¯³ª À̸§°ú´Â ´Þ¸® ÆÄÀÏÀ» »ý¼ºÇÏ´Â °Í»Ó¸¸ ¾Æ´Ï¶ó ±âÁ¸ÀÇ ÆÄÀÏÀ» ¿­ ¼öµµ ÀÖÀ¸¸ç ÆÄÀÏ ¿Ü¿¡ ´ÙÀ½°ú °°Àº ¿ÀºêÁ§Æ®¸¦ »ý¼ºÇϰųª ¿­ ¼öµµ ÀÖ´Ù.

ÆÄÀÌÇÁ
¸ÞÀϽ½·Ô
COM Æ÷Æ® µîÀÇ Åë½Å ÀåÄ¡
µð½ºÅ© ÀåÄ¡
Å×ÀÔ µå¶óÀ̺ê
ÄܼÖ
µð·ºÅ丮

ÀÌ ÇÔ¼ö·Î »ý¼ºÇÑ ÇÚµéÀº ¹Ýµå½Ã CloseHandle·Î ´Ý¾Æ ÁÖ¾î¾ß ÇÑ´Ù.

¿¹Á¦ 1

´ÙÀ½ ¿¹Á¦´Â ÆÄÀÏÀ» »ý¼ºÇÏ°í ÆÄÀÏ¿¡ ÅؽºÆ®¸¦ ±â·ÏÇÑ´Ù.

LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
	HDC hdc;
	PAINTSTRUCT ps;
	HANDLE hFile;
	DWORD dwWritten;
	LPCTSTR str=TEXT("Å×½ºÆ® ÆÄÀÏÀÔ´Ï´Ù");

	switch(iMessage) {
	case WM_LBUTTONDOWN:
		hFile=CreateFile("c:\\TestFile.txt",GENERIC_WRITE,0,NULL,
			CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
		WriteFile(hFile,str,lstrlen(str),&dwWritten,NULL);
		CloseHandle(hFile);
		return 0;
	case WM_PAINT:
		hdc=BeginPaint(hWnd, &ps);
		EndPaint(hWnd, &ps);
		return 0;
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	}
	return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

Cµå¶óÀ̺êÀÇ ·çÆ® µð·ºÅ丮¿¡ TestFile.txt ÆÄÀÏÀ» ¾²±â ¾×¼¼½º ±ÇÇÑÀ¸·Î »ý¼ºÇÏ¿´´Ù. CREATE_ALWAYS Ç÷¡±×¸¦ ÁÖ¾î ÆÄÀÏÀÌ ÀÖÀ» °æ¿ì »õ·Î ¸¸µç´Ù. ¿¹Á¦¸¦ ½ÇÇàÇÑ ÈÄ TestFile.txt ¸¦ È®ÀÎÇØ º¸¸é ¹®ÀÚ¿­ÀÌ ±â·ÏµÇ¾î ÀÖÀ» °ÍÀÌ´Ù.

Âü°íÇÔ¼ö

ReadFile : ÆÄÀϷκÎÅÍ µ¥ÀÌÅ͸¦ Àд´Ù.
WriteFile : ÆÄÀÏ¿¡ µ¥ÀÌÅ͸¦ ±â·ÏÇÑ´Ù.
CloseHandle : ÇÚµéÀ» ´Ý´Â´Ù.

Ç÷§Æû

95ÀÌ»ó

ÂüÁ¶

¾×¼¼½º ±ÇÇÑ¿¡ ´ëÇÑ »ó¼¼ÇÑ ³»¿ëÀº 39-2-»çÀýÀ» Âü°íÇϱ⠹ٶõ´Ù.


written by http://www.winapi.co.kr