NULL addr的mmap如何工作?

时间:2018-08-20 12:43:21

标签: c memory null mmap

指定将mmapNULL addr 一起使用时,内核选择创建映射的(页面对齐)地址:

  

mmap()在的虚拟地址空间中创建一个新的映射。          调用过程。新映射的起始地址是          在addr中指定。 length参数指定          映射(必须大于0)。 如果addr为NULL,则内核选择(页面对齐的)地址          创建映射的位置;这是最便携的方法          创建新的映射。

假设我有以下代码:

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 个答案:

答案 0 :(得分:2)

否,它没有说明映射的相对位置,因此您不能对此做任何假设。将每个映射都与其他映射完全分开。