如何仅从虚拟地址获取内存段的页面大小?
Linux 可以同时拥有标准 4KiB 页面内存和 1GiB(巨大)页面内存(以及 2MiB 页面,但我不知道是否有人使用它)。
是否有从任意虚拟地址获取页面大小的标准调用?指针可能指向 4K 页或大页。
手头的问题是对assert(...)需要基地址和区域大小必须是页面大小的倍数的函数的参数进行健全 ( ) 检查,然后传递给mbind. 但是页面大小因系统而异。如果没有健全性检查,mbind只给出的返回值Invalid argument对调试没有帮助。
我看过这个答案How to get linux kernel page size programmatically但它给出的答案假设整个系统是相同的,而且它们也是编译时常量。也getpagesize()做同样的事情,无论如何它都被弃用了。