🔥博客主页: 我要成为C++领域大神
🎥系列专栏:【C++核心编程】 【计算机网络】 【Linux编程】 【操作系统】
❤️感谢大家点赞👍收藏⭐评论✍️本博客致力于知识分享,与更多的人进行学习交流

MMAP实现的原理
内存映射文件(Memory-Mapped Files):将文件映射到进程的用户空间,使得进程之间可以直接通过内存访问文件内容,从而实现文件内容的共享,而不需要通过传统的读写方式来操作。适用于大型数据的共享和持久化。
使用mmap完成进程间的通信,也是确定通信方向,一个负责编辑修改映射内存,一个负责打印映射内存数据,不要让两端同时修改访问映射内存,会出现数据异常。
私有映射:拷贝映射,将映射文件的数据拷贝一份到映射内存,两份数据独立无关联
共享映射:同步映射,将映射文件的数据映射一份给进程,两份数据建立sync同步机制,对一份数据的修改会立即更新给另一份。

内存映射文件机制通过mmap函数实现。
mmap()
void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset);
参数
addr:指定映射的起始地址。通常设为NULL,表示让操作系统选择合适的地址。
length:指定映射的长度,即要映射的文件或对象的大小。
prot:指定映射区域的保护方式,可以是PROT_READ(可读)、PROT_WRITE(可写)、PROT_EXEC(可执行)的组合,用来控制映射区域的访问权限。
flags:用来指定映射对象的类型及其属性。常见的标志包括MAP_SHARED(映射可以被其他进程共享)和MA

最低0.47元/天 解锁文章
3468

被折叠的 条评论
为什么被折叠?



