def map_file(cls, fileobj, offset = 0, size = None):
fileobj.seek(offset)
total_size = cls._Header.unpack(fileobj.read(cls._Header.size))[0]
map_start = offset - offset % mmap.ALLOCATIONGRANULARITY
buf = mmap.mmap(fileobj.fileno(), total_size + offset - map_start,
access = mmap.ACCESS_READ, offset = map_start)
rv = cls(buffer(buf, offset - map_start))
rv._file = fileobj
rv._mmap = buf
return rv
评论列表
文章目录