代码之家  ›  专栏  ›  技术社区  ›  Duke Nukem

带空地址的mmap是如何工作的?

  •  -2
  • Duke Nukem  · 技术社区  · 6 年前

    当使用 mmap NULL 地址 ,内核选择创建映射的(页面对齐)地址:

    mmap()在 调用进程。新映射的起始地址是 在地址中指定。length参数指定 如果addr为空,那么内核选择(页面对齐的)地址 ;这是 创建新映射。

    假设我有下面的代码:

    void (*x)(void);
    void (*y)(void);
    x=mmap(NULL, 0x500, PROT..., FLAGS..., FD..., 0);
    y=mmap(NULL, 0x500, PROT..., FLAGS..., FD..., 0);
    

    是不是意味着 y x ?

    1 回复  |  直到 6 年前
        1
  •  2
  •   unwind    6 年前

    不,它没有说明映射的相对位置,因此您不能对其进行任何假设。将每个映射视为与所有其他映射完全分离。