Mmap内存映射的原理以及实现

图片,mmap 具有如下的特点:,mmap内存映射的实现过程,总的来说可以分为三个阶段:,2.1进程启动映射过程,并在虚拟地址空间中为映射创建虚拟映射区域;,2.2调用内核空间的系统调用函数mmap(不同于用户空间函数),实现文件物理地址和进程虚拟地址的一一映射关系,2.3进程发起对这片映射空间的访问,引发缺页异常,实现文件内容到物理内存(主存)的拷贝,3.1mmap函数的原型,参数addr:指定映射的起始地址,通常设为NULL,由内核来分配,参数length:代表将文件中映射到内存的部分的长度。,参数prot:映射区域的保护方式。可以为以下几种方式的组合:,参数flags:映射区的特性标志位,常用的两个选项是:,参数fd:要映射到内存中的文件描述符,有open函数打开文件时返回的值。,参数offset:文件映射的偏移量,通常设置为0,代表从文件最前方开始对应,offset必须是分页大小的整数倍。,函数返回值:实际分配的内存的起始地址,3.2munmap函数,与mmap函数成对使用的是munmap函数,它是用来解除映射的函数;,3.3实例,下面是一个mmap使用的实例代码,这段代码实现了将测试文件testdata打开,并用mmap函数将文件映射到虚拟内存中,通过指针start对文件进行读写。在终端中可看到由文件读取的数据。程序结束后,可以查看testdata文件,来查看写入的数据,
,

文章版权声明

 1 原创文章作者:cmcc,如若转载,请注明出处: https://www.52hwl.com/22605.html

 2 温馨提示:软件侵权请联系469472785#qq.com(三天内删除相关链接)资源失效请留言反馈

 3 下载提示:如遇蓝奏云无法访问,请修改lanzous(把s修改成x)

 免责声明:本站为个人博客,所有软件信息均来自网络 修改版软件,加群广告提示为修改者自留,非本站信息,注意鉴别

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年3月5日 上午12:00
下一篇 2023年3月7日 下午10:34