创作不易,本篇文章如果帮助到了你,还请点赞 关注支持一下♡>𖥦<)!!
主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步!
🔥Linux系列专栏:Linux基础 🔥给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ
一、mmap()函数
mmap内存映射是一种可以用于进程间通信的技术,通过mmap
,多个进程之间可以直接读取和修改磁盘上的文件内容,从而实现进程通信。
同时也不需要像传统方式那样先将文件读入到用户空间,然后再从用户空间写入内核空间。这种映射机制提高了文件访问的效率。(相比于read()减少了一次拷贝开销)
#include <sys/mman.h>
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_READ|PROT_WRITE
- flags:映射的属性,可以分为 MAP_PRIVATE(对映射内容的修改不写入