1
我試圖用ACCESS_COPY模式映射文件。然後我寫入一個char和flush,但是flush()返回失敗,並且更改不會寫回到文件中。任何想法爲什麼?謝謝。python mmap flush()不適用於ACCESS_COPY
Python 2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
import os, mmap
f = open('etc.test', 'r+b')
mapped = mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_COPY)
print mapped[0]
mapped[0] = 'R'
print mapped.flush() <--- returns 0 (error on Windows)
mapped.close()
f.close()
是否有您使用mmap.ACCESS_COPY什麼特別的原因?記錄mmap.ACCESS_COPY無法將更改寫回文件。 – nos 2014-10-30 22:51:09
是的,我想在內存中進行更改,然後寫回文件。 「分配給ACCESS_COPY內存映射會影響內存,但不會更新基礎文件。」 「flush([offset,size]) 刷新文件的內存中副本到磁盤的更改。」 – notkov 2014-10-30 22:51:40