c++ - 如何从 operator new 或 malloc 为 mremap 获取页对齐内存

标签 c++ c posix

有没有办法分配一 block 内存,使其起始地址与给定的页面大小对齐?请注意,我不想在分配 block 后计算对齐地址。原因是在某些时候我将不得不在 block 上调用 mremap():mremap 要求旧地址参数是页面对齐的。

最佳答案

mremap 只能安全地用于由 mmap 分配的内存区域,这些内存区域本质上是页面对齐的。在其他任何事情上使用它都是危险的(正式的,未定义的行为)并且可能看起来有效但可能会以您不会立即看到的方式严重破坏事物。

关于c++ - 如何从 operator new 或 malloc 为 mremap 获取页对齐内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16884122/

相关文章:

c++ - 如何使用 CMake 将外部库( boost )包含到 CLion C++ 项目中?

java - 有没有办法在 Java 中模拟 C++ 'friend' 概念?

c - C 中的简单 nginx if 语句

我可以在没有完整签名的情况下声明 "opaque"函数指针类型吗?

c++ - 为什么 pthread_cond_wait 需要锁?

sockets - 使用 localhost 的 25 端口发送电子邮件?

c++ - 插入卡在运行时的 unordered_map

c++ - 编辑距离 - 带内存

为斐波那契数列创建表

c - open(2) 何时因 errno == EMLINK 而失败?