Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «БистСмноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² срСдС WindowsΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 11

Автор ДТонсон Π₯Π°Ρ€Ρ‚

Доступ ΠΊ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌ систСмам любого Ρ‚ΠΈΠΏΠ° осущСствляСтся ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΈΠ½ΠΎΠ³Π΄Π° с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ограничСниями. НапримСр, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Ρ„Π°ΠΉΠ»ΠΎΠ² обСспСчиваСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² NTFS. Π’ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… случаях ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒ вашС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° особСнности, присущиС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ NTFS, Π½ΠΎ Π² этой ΠΊΠ½ΠΈΠ³Π΅, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ использованиС ΠΈΠΌΠ΅Π½Π½ΠΎ этой систСмы.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы (FAT, NTFS ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ), Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ для диска Π² Ρ†Π΅Π»ΠΎΠΌ, ΠΈΠ»ΠΈ для Π΅Π³ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ², опрСдСляСтся Π²ΠΎ врСмя Ρ€Π°Π·Π±ΠΈΠ²ΠΊΠΈ диска Π½Π° Ρ€Π°Π·Π΄Π΅Π»Ρ‹.

ΠŸΡ€Π°Π²ΠΈΠ»Π° имСнования Ρ„Π°ΠΉΠ»ΠΎΠ²

Windows ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΡƒΡŽ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ систСму ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ², соглашСния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ, ΠΎΠ΄Π½Π°ΠΊΠΎ, нСсколько ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ соглашСний, ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹Ρ… для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ UNIX, ΠΈ основаны Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ…:

β€’ ΠŸΠΎΠ»Π½ΠΎΠ΅ имя Ρ„Π°ΠΉΠ»Π° Π½Π° дискС, содСрТащСС ΠΏΡƒΡ‚ΡŒ доступа ΠΊ Π½Π΅ΠΌΡƒ, начинаСтся с указания Π±ΡƒΠΊΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ диска, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, А: ΠΈΠ»ΠΈ Π‘:. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π±ΡƒΠΊΠ²Ρ‹ А: ΠΈ Π’: относятся ΠΊ Ρ„Π»ΠΎΠΏΠΏΠΈ-дисководам, Π° Π‘:, D: ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅ β€” ΠΊ ТСстким дискам ΠΈ ΠΏΡ€ΠΈΠ²ΠΎΠ΄Π°ΠΌ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚-дисков. ΠŸΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π±ΡƒΠΊΠ²Ρ‹ Π°Π»Ρ„Π°Π²ΠΈΡ‚Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Н: ΠΈΠ»ΠΈ K:, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ сСтСвым дискам. ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π‘ΡƒΠΊΠ²Π΅Π½Π½Ρ‹Π΅ обозначСния дисков Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² Windows Π‘Π•.

β€’ Π‘ущСствуСт ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ задания ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ доступа β€” использованиС ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈΠΌΠ΅Π½ (Universal Naming Code, UNC), Π² соотвСтствии с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΏΡƒΡ‚ΠΈ начинаСтся с глобального ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅ΠΌΠΎΠ³ΠΎ двумя символами ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ косой Ρ‡Π΅Ρ€Ρ‚Ρ‹ (\\), с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΈΠΌΠ΅Π½ΠΈ сСрвСра ΠΈ ΠΈΠΌΠ΅Π½ΠΈ раздСляСмого рСсурса (share name) для опрСдСлСния мСстополоТСния рСсурса Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΌ сСрвСрС сСти. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, пСрвая Ρ‡Π°ΡΡ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ доступа Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΈΠ΄: \\servername\sharename.

β€’ ΠŸΡ€ΠΈ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΈ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ доступа Π² качСствС раздСлитСля ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ косой Ρ‡Π΅Ρ€Ρ‚Ρ‹ (\), Π½ΠΎ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… API для этой Ρ†Π΅Π»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚Π°ΠΊΠΆΠ΅ символом прямой косой Ρ‡Π΅Ρ€Ρ‚Ρ‹ (/), ΠΊΠ°ΠΊ это принято Π² Π‘.

β€’ Π’ ΠΈΠΌΠ΅Π½Π°Ρ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Ρ‚ΡŒΡΡ символы ASCII, числСнныС значСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» 1-31, Π° Ρ‚Π°ΠΊΠΆΠ΅ любой ΠΈΠ· пСрСчислСнных Π½ΠΈΠΆΠ΅ символов:

< > : " | ? * \ /

Π’ ΠΈΠΌΠ΅Π½Π°Ρ… Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя, Ссли ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ², содСрТащиС ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС, Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Ρ‚Π°ΠΊΠΎΠ΅ имя слСдуСт Π·Π°ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Π³ΠΎ нСльзя Π±Ρ‹Π»ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π΄Π²Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΈΠΌΠ΅Π½ΠΈ, относящихся ΠΊ Π΄Π²ΡƒΠΌ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»Π°ΠΌ.

β€’ Π‘Ρ‚Ρ€ΠΎΡ‡Π½Ρ‹Π΅ ΠΈ прописныС Π±ΡƒΠΊΠ²Ρ‹ Π² ΠΈΠΌΠ΅Π½Π°Ρ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΈΠΌΠ΅Π½Π° Π½Π΅ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ ΠΊ рСгистру (case-insensitive), Π½ΠΎ Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя ΠΎΠ½ΠΈ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‚ рСгистр (case-retaining); Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Ссли Ρ„Π°ΠΉΠ» Π±Ρ‹Π» создан с ΠΈΠΌΠ΅Π½Π΅ΠΌ MyFile, Ρ‚ΠΎ это ΠΆΠ΅ имя Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈ ΠΏΡ€ΠΈ Π΅Π³ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ, хотя, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для доступа ΠΊ Ρ„Π°ΠΉΠ»Ρƒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использовано Ρ‚Π°ΠΊΠΆΠ΅ имя myFILE.

β€’ Π”Π»ΠΈΠ½Π° ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΈ Ρ„Π°ΠΉΠ»Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Ρ‚ΡŒ 255 символов, Π° Π΄Π»ΠΈΠ½Π° ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ доступа ограничиваСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° МАΠ₯_РАВН (Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся 256).

β€’ Π”ля отдСлСния ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° ΠΎΡ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Ρ‚ΠΎΡ‡ΠΊΠΈ (.), ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½ (ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π΄Π²Π° ΠΈΠ»ΠΈ Ρ‚Ρ€ΠΈ символа, находящиСся справа ΠΎΡ‚ самой послСднСй Ρ‚ΠΎΡ‡ΠΊΠΈ, входящСй Π² имя Ρ„Π°ΠΉΠ»Π°) ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² соотвСтствии с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ соглашСниями. Π’Π°ΠΊ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» atou.EXE β€” это исполняСмый Ρ„Π°ΠΉΠ», Π° Ρ„Π°ΠΉΠ» atou.Π‘ β€” Ρ„Π°ΠΉΠ» с исходным тСкстом ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языкС Π‘. ДопускаСтся использованиС Π² ΠΈΠΌΠ΅Π½Π°Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… символов Ρ‚ΠΎΡ‡ΠΊΠΈ.

β€’ ΠžΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹ΠΉ символ Ρ‚ΠΎΡ‡ΠΊΠΈ (.) ΠΈ Π΄Π²Π° символа Ρ‚ΠΎΡ‡ΠΊΠΈ (..), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² качСствС ΠΈΠΌΠ΅Π½ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚, соотвСтствСнно, Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΈ Π΅Π³ΠΎ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³.

ПослС этого вступлСния ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Windows, Π½Π°Ρ‡Π°Ρ‚ΠΎΠ΅ Π² Π³Π»Π°Π²Π΅ 1.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ открытия, чтСния, записи ΠΈ закрытияфайлов

ΠŸΠ΅Ρ€Π²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Windows, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ опишСм, являСтся функция CreateFile, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ ΠΊΠ°ΠΊ для создания Π½ΠΎΠ²Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΈ для открытия ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ². Для этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠ°ΠΊ ΠΈ для всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ…, сначала приводится ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΎΠ±ΡΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ порядок Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½Π΅ΠΉ.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ данная функция являСтся ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Windows, ΠΊ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΡ‹ приступаСм, Π΅Π΅ описаниС Π±ΡƒΠ΄Π΅Ρ‚ нСсколько Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΌ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ; для Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ часто Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ лишь ΠΊΡ€Π°Ρ‚ΠΊΠΈΠ΅ описания. ВмСстС с Ρ‚Π΅ΠΌ, Π΄Π°ΠΆΠ΅ Π² случаС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ CreateFile Π±ΡƒΠ΄ΡƒΡ‚ описаны Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ всС ΠΈΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… многочислСнных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π΅Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния Π²Ρ‹ всСгда смоТСтС Π½Π°ΠΉΡ‚ΠΈ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ справочной систСмС.

ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅Π΅ использованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ CreateFile ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π² Π³Π»Π°Π²Π΅ 1 ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Windows-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° 1.2), содСрТащСй Π΄Π²Π° Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² dwShareMode, lpSecurityAttributes ΠΈ hTemplateFile Π±Ρ‹Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ dwAccess ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ значСния GENERIC_READ ΠΈ GENERIC_WRITE.

HANDLE CreateFile(LPCTSTR lpName, DWORD dwAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreate, DWORD dwAttrsAndFlags, HANDLE hTemplateFile)

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: Π² случаС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ выполнСния β€” дСскриптор ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° (Ρ‚ΠΈΠΏΠ° HANDLE), ΠΈΠ½Π°Ρ‡Π΅ β€” INVALID_HANDLE_VALUE.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

ИмСна ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ соглашСния Windows. ΠŸΡ€Π΅Ρ„ΠΈΠΊΡ dw ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΈΠΌΠ΅Π½Π°Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ‚ΠΈΠΏΠ° DWORD (32-Π±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ Ρ†Π΅Π»Ρ‹Π΅ Π±Π΅Π· Π·Π½Π°ΠΊΠ°), Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠ³ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Ρ„Π»Π°Π³ΠΈ ΠΈΠ»ΠΈ числовыС значСния, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ счСтчики, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ прСфикс lpsz (Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° строку, Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΡƒΡŽΡΡ Π½ΡƒΠ»Π΅ΠΌ), ΠΈΠ»ΠΈ Π² ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ β€” lΡ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для строк, содСрТащих ΠΏΡƒΡ‚ΠΈ доступа, Π»ΠΈΠ±ΠΎ ΠΈΠ½Ρ‹Ρ… строковых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, хотя докумСнтация Microsoft Π² этом ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ Π½Π΅ всСгда ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Π°. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ опрСдСлСния Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… Π²Π°ΠΌ придСтся ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π·Π΄Ρ€Π°Π²ΠΎΠΌΡƒ смыслу ΠΈΠ»ΠΈ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ‡Π΅ΡΡ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ.

lpName β€” ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° строку с Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΠΌ Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ символом, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ имя Ρ„Π°ΠΉΠ»Π°, ΠΊΠ°Π½Π°Π»Π° ΠΈΠ»ΠΈ любого Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ. ДопустимоС количСство символов ΠΏΡ€ΠΈ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΈ ΠΏΡƒΡ‚Π΅ΠΉ доступа ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ограничиваСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ МАΠ₯_РАВН (260), ΠΎΠ΄Π½Π°ΠΊΠΎ Π² Windows NT это ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ, помСстив ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ прСфикс \\?\, Ρ‡Ρ‚ΠΎ обСспСчиваСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования ΠΎΡ‡Π΅Π½ΡŒ Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… ΠΈΠΌΠ΅Π½ (с числом символов Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ 32 К). Π‘Π°ΠΌ прСфикс Π² имя Π½Π΅ Π²Ρ…ΠΎΠ΄ΠΈΡ‚. О Ρ‚ΠΈΠΏΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… LPCTSTR говорится Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ², Π° ΠΏΠΎΠΊΠ° Π²Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ достаточно Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ относится ΠΊ строковым Π΄Π°Π½Π½Ρ‹ΠΌ.

dwAccess β€” опрСдСляСт Ρ‚ΠΈΠΏ доступа ΠΊ Ρ„Π°ΠΉΠ»Ρƒ β€” Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ запись, Ρ‡Ρ‚ΠΎ соотвСтствСнно указываСтся Ρ„Π»Π°Π³Π°ΠΌΠΈ GENERIC_READ ΠΈ GENERIC_WRITE. Π’Π²ΠΈΠ΄Ρƒ отсутствия Ρ„Π»Π°Π³ΠΎΠ²Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ READ ΠΈ WRITE использованиС прСфикса GENERIC_ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ излишним, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ для совмСстимости с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ макросов, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ Windows WINNT.H. Π’Ρ‹ Π΅Ρ‰Π΅ Π½Π΅ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΡΡ‚ΠΎΠ»ΠΊΠ½Π΅Ρ‚Π΅ΡΡŒ с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ каТутся Π΄Π»ΠΈΠ½Π½Π΅Π΅, Ρ‡Π΅ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ. 

Π£ΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ значСния ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ поразрядного "ΠΈΠ»ΠΈ" (|), ΠΈ Ρ‚ΠΎΠ³Π΄Π° для получСния доступа ΠΊ Ρ„Π°ΠΉΠ»Ρƒ ΠΊΠ°ΠΊ ΠΏΠΎ Ρ‡Ρ‚Π΅Π½ΠΈΡŽ, Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎ записи, слСдуСт Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚Π°ΠΊΠΈΠΌ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ:

GENERIC_READ | GENERIC_WRITE

dwShareMode β€” ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ поразрядного "ΠΈΠ»ΠΈ" ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ значСния:

β€’ 0 β€” Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π΅Ρ‚ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ (совмСстноС использованиС) Ρ„Π°ΠΉΠ»Π°. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ дСскриптора для Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ Π΄Π°ΠΆΠ΅ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ процСсса.

β€’ FILE_SHARE_READ β€” Π΄Ρ€ΡƒΠ³ΠΈΠΌ процСссам, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΈ Ρ‚ΠΎΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ осущСствил Π΄Π°Π½Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ этот Ρ„Π°ΠΉΠ» для ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ доступа ΠΏΠΎ Ρ‡Ρ‚Π΅Π½ΠΈΡŽ.

β€’ FILE_SHARE_WRITE β€” Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΡƒΡŽ запись Π² Ρ„Π°ΠΉΠ».

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹, программист Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎΠ± ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ситуаций, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ нСсколько ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ записи Π² ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ мСсто Π² Ρ„Π°ΠΉΠ»Π΅. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ этот вопрос рассматриваСтся Π² Π³Π»Π°Π²Π΅ 3.

lpSecurityAttributes β€” ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° структуру SECURITY_ATTRIBUTES. На ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΠΏΠΎΡ€Π°Ρ… ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π°Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ CreateFile ΠΈ всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π²Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ достаточно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NULL; вопросы бСзопасности Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² Π³Π»Π°Π²Π΅ 15.

dwCreate β€” ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ: ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ», ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ» ΠΈ Ρ‚ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅. ΠœΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π½ΠΈΠΆΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ поразрядного "ΠΈΠ»ΠΈ" языка Π‘.

β€’ CREATE_NEW β€” ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ»; Ссли ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΡƒΠΆΠ΅ сущСствуСт, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ Π½Π΅ΡƒΠ΄Π°Ρ‡Π΅ΠΉ.

β€’ CREATE_ALWAYS β€” ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ»; Ссли ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΡƒΠΆΠ΅ сущСствуСт, функция ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚ Π΅Π³ΠΎ.

β€’ OPEN_EXISTING β€” ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ»; Ссли ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π½Π΅ сущСствуСт, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ Π½Π΅ΡƒΠ΄Π°Ρ‡Π΅ΠΉ.

β€’ OPEN_ALWAYS β€” ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ»; Ссли ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π½Π΅ сущСствуСт, функция создаст Π΅Π³ΠΎ.