Linux 中的 dwAllocationGranularity 等效吗?

Meh*_*dad 4 c++ linux memory allocation granularity

dwAllocationGranularityLinux 中相当于什么?在 Windows 中,它的定义为:

可以分配虚拟内存的起始地址的粒度。

请注意,这与物理页的粒度不同。 (在 Windows 上,x86 上的虚拟地址粒度为 64 KiB,而页面大小当然为 4 KiB。)PAGE_SIZE

flo*_*din 6

Linux 上 VirtualAlloc 最接近的等效项是 mmap,它与 VirtualAlloc 一样,允许您指定已分配内存的所需分配目标地址。在 Windows 上,该地址必须在分配粒度上对齐。在 Linux 上,我引用 mmap 手册页:

如果addr不为NULL,那么内核将其作为放置映射位置的提示;在 Linux 上,映射将在附近的页面边界处创建

据我所知,不存在分配粒度高于系统页面大小的情况,因此您应该能够安全地使用 PAGE_SIZE 作为替代品。