我对mmap()
系统调用有点困惑。我意识到它映射内存,我不明白从应用程序mmap()
调用调用如何干扰(或不)已经运行的 malloced 段,特别是那些使用.sbrk()
让我进一步解释一下我的意思:假设我通过简单的where
分配了几个结构。根据 glibc,这些调用将使用 sbrk() 调用 (v2.15/malloc.c) 来满足,这将使数据段向上增长。malloc(x);
x < 1MB
sbrk()
将导致虚拟数据段连续增长。所以我的问题是,当sbrk()
被调用到通过mmap()
.
对此有何想法或评论?非常感激!