我在内存中有一个碎片结构,我想将它作为一个连续的内存视图来访问它.有没有一种简单的方法可以做到这一点,还是应该实现自己的解决方案?
例如,考虑由记录组成的文件格式.每条记录都有一个固定长度的标题,用于指定记录内容的长度.更高级别的逻辑结构可能分布在多个记录中.如果它可以将它自己的碎片内存位置视为一个简单的连续字节数组,那么它将使更高级别的结构更容易实现.
更新:
似乎python在内部支持这种"分段"缓冲区类型,至少基于文档的这一部分.但这只是C API.
UPDATE2:
据我所知,引用的C API - 称为旧式缓冲区 - 可以满足我的需求,但现在已经弃用,并且在较新版本的Python(3.X)中不可用.新的缓冲协议 - 在PEP 3118中指定- 提供了一种表示缓冲区的新方法.这个API在大多数用例中更有用(其中,表示缓冲区在内存中不连续的用例),但不支持这个特定的用例,其中一维数组可以完全自由地布局(多个不同)记忆中的大小块.