【发布时间】:2014-02-17 12:43:33
【问题描述】:
我想知道一种方法来确定一个指针是否属于一个映射的内存页。
StackOverflow 上的post 建议在指针上使用 msync() 来确定它是否通过。但是我发现只要指针是页面大小的倍数,msync() 就会成功,无论页面是否被映射。
我通过宏计算页面的起始地址:
#define align_to_page(addr,pagesize) (addr & ~(pagesize - 1))
请帮帮我,我已经研究了很长时间,在这里被屏蔽了。提前谢谢你:)
背景: 我正在开发 Python 和 Numpy 的扩展。在某些函数中,它必须区分普通的 numpy.ndarray 和 numpy.memmap ,后者是 numpy.ndaraay 的子类,其数据缓冲区由磁盘上的文件支持的 mmap() 创建。
【问题讨论】: