首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mmap文件与mmap在malloc中的比较

mmap文件与mmap在malloc中的比较
EN

Unix & Linux用户
提问于 2020-11-23 15:01:29
回答 1查看 861关注 0票数 3

我有点被mmap弄糊涂了。

我知道,当我们malloc一个大内存时,我们将调用函数mmap,它将在内存中分配一个区域。在这种情况下,mmap只为某个进程分配一些内存。

但是,我听说mmap是一种技术,它允许我们将位于硬盘驱动器上的文件映射到内存中,以便与普通IO (读和写)相比具有更好的性能。

对我来说,上面的两件事完全是两个独立的故事:一个是关于内存的分配,另一个是关于用更好的方式读取和写入文件。

但是为什么他们都叫mmap呢?这只是巧合,还是它们实际上是同一种技术?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2020-11-23 15:09:36

mmap提供了一种实现映射内存页的方法。在Linux中 (除其他外),这些内存页可以有不同的支持设备:特别是文件,而不是任何东西(用于匿名映射、MAP_ANONYMOUS),或者更确切地说是交换设备或文件。

虽然用例完全不同,但有一个共同的主题:为流程分配地址空间,并定义如何将页面映射到那里。

mmap还有其他用例,特别是共享内存。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/621144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档