如何在mmap中指定偏移量和访问权限?

时间:2012-06-07 14:04:57

标签: python mmap

给定mmap的构造函数声明:

class mmap.mmap(fileno, length[, flags[, prot[, access[, offset]]]])

如何指定访问权限和&偏移?

文档说明:

  

可以指定访问来代替flags和prot作为可选项   关键字参数。指定两个标志,prot和。是错误的   访问。有关如何使用的信息,请参阅上面的访问说明   使用此参数。

所以我尝试过像

这样的事情
  • mmap.mmap(file_no, length, offset, access=mmap.ACCESS_COPY)
  • mmap.mmap(file_no, length, access=mmap.ACCESS_COPY, offset=offset)

      
        
          

    m = mmap.mmap(f.fileno(),4,access = mmap.ACCESS_COPY,offset = 2)
            追溯(最近的呼叫最后):
            文件“”,第1行,in       mmap.error:[Errno 22]参数无效

        
      
  • mmap.mmap(file_no, length, mmap.ACCESS_COPY, offset)

但我无法让它发挥作用。为什么这让我这么困惑?

2 个答案:

答案 0 :(得分:3)

此错误与访问无关。如documented,偏移量必须是mmap.PAGESIZEmmap.ALLOCATIONGRANULARITY的倍数。

答案 1 :(得分:1)

尝试:

m = mmap.mmap(f.fileno(), 4, access=mmap.ACCESS_COPY, offset=2 * mmap.ALLOCATIONGRANULARITY)