mmap
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ°ΠΉΠ»ΠΎΠ² Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ
ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½Π½ΡΠ΅ Π² ΠΏΠ°ΠΌΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π²Π΅Π΄ΡΡ ΡΠ΅Π±Ρ ΠΊΠ°ΠΊ Π±Π°ΠΉΡΠΎΠ²ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ, ΡΠ°ΠΊ ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ mmap Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΠΌΠ΅ΡΡ, Π³Π΄Π΅ ΠΎΠΆΠΈΠ΄Π°Π΅ΡΡΡ bytearray; Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ re Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° Π² ΡΠ°ΠΉΠ»Π΅ Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π² ΠΏΠ°ΠΌΡΡΡ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ Π±Π°ΠΉΡ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² obj [index] = 97, ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΠ΄ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, ΠΏΡΠΈΡΠ²ΠΎΠΈΠ² ΡΡΠ΅Π·Ρ: obj [i1: i2] = b '...'. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΈΡΠ°ΡΡ ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΡΠ°ΠΉΠ»Π°, ΠΈ seek() ΡΠ΅ΡΠ΅Π· ΡΠ°ΠΉΠ» Π² ΡΠ°Π·Π½ΡΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ.
Π€Π°ΠΉΠ» Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠΌ mmap, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ Π² Unix ΠΈ Windows. Π Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΉ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ Π΄Π»Ρ ΡΠ°ΠΉΠ»Π°, ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ. ΠΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Python, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄ fileno (), ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° fileno. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΊΡΡΡΡ ΡΠ°ΠΉΠ» Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ os.open (), ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π°ΠΏΡΡΠΌΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΠ°ΠΉΠ»Π° (ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ» Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΊΡΡΡΡ).
ΠΠ»Ρ Π²Π΅ΡΡΠΈΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΠΊΠ°ΠΊ Π΄Π»Ρ Unix, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ Windows Π΄ΠΎΡΡΡΠΏ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΊΠ°Π·Π°Π½ ΠΊΠ°ΠΊ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°. access ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠ΅ΡΡΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ: ACCESS_READ, ACCESS_WRITE ΠΈΠ»ΠΈ ACCESS_COPY, ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΠ°ΠΌΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ, ΡΠΊΠ²ΠΎΠ·Π½ΡΡ Π·Π°ΠΏΠΈΡΡ ΠΈΠ»ΠΈ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈ Π·Π°ΠΏΠΈΡΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΈΠ»ΠΈ ACCESS_DEFAULT, ΡΡΠΎΠ±Ρ ΠΎΡΠ»ΠΎΠΆΠΈΡΡ Π΄ΠΎ prot. access ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π² Unix, ΡΠ°ΠΊ ΠΈ Π² Windows. ΠΡΠ»ΠΈ access Π½Π΅ ΡΠΊΠ°Π·Π°Π½, Windows mmap Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎ ΡΠΊΠ²ΠΎΠ·Π½ΠΎΠΉ Π·Π°ΠΏΠΈΡΡΡ. ΠΠ°ΡΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΡΠ΅Ρ ΡΠΈΠΏΠΎΠ² Π΄ΠΎΡΡΡΠΏΠ° Π±Π΅ΡΡΡΡΡ ΠΈΠ· ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°. ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΡΡΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ACCESS_READ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ TypeError. ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΡΡΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ACCESS_WRITE Π²Π»ΠΈΡΠ΅Ρ ΠΊΠ°ΠΊ Π½Π° ΠΏΠ°ΠΌΡΡΡ, ΡΠ°ΠΊ ΠΈ Π½Π° Π±Π°Π·ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ». ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΡΡΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ACCESS_COPY Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΠΏΠ°ΠΌΡΡΡ, Π½ΠΎ Π½Π΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ Π±Π°Π·ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ».
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π² Π²Π΅ΡΡΠΈΠΈ 3.7: ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° ACCESS_DEFAULT.
Π§ΡΠΎΠ±Ρ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΡΡ ΠΏΠ°ΠΌΡΡΡ, Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ fileno Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ -1 Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π΄Π»ΠΈΠ½ΠΎΠΉ.
ΠΠ»Π°ΡΡΡ mmap
mmap.mmap class Windows
mmap.mmap class Unix
ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½Π½ΡΠ΅ Π² ΠΏΠ°ΠΌΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ:
mmap.close ()
mmap.closed
mmap.find ()
mmap.flush ()
mmap.madvise ()
mmap.move ()
mmap.read ()
mmap.read_byte ()
mmap.readline ()
mmap.resize ()
mmap.rfind ()
mmap.seek ()
mmap.size ()
mmap.tell ()
mmap.write ()
mmap.write_byte ()
ΠΠΎΠ½ΡΡΠ°Π½ΡΡ MADV_*
Last updated
Was this helpful?