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