mmap函数

news/2024/9/23 3:33:55/

参考

https://blog.csdn.net/bhniunan/article/details/104105153

在这里插入图片描述

void *mmap(void *addr, size_t len, int prot, int flags, int fd, off_t offset);

参数

  • addr:出参, 指定映射的起始地址,通常设为NULL,由内核来分配

  • len:入参, 代表将文件中映射到内存的部分的长度。

  • prot:入参,映射区域的保护方式。可以为以下几种方式的组合:
    PROT_EXEC 映射区域可被执行
    PROT_READ 映射区域可被读取
    PROT_WRITE 映射区域可被写入
    PROT_NONE 映射区域不能存取

  • flags:入参,映射区的特性标志位,常用的两个选项是:
    MAP_SHARD:写入映射区的数据会复制回文件,且运行其他映射文件的进程共享
    MAP_PRIVATE:对映射区的写入操作会产生一个映射区的复制,对此区域的修改不会写会原文件

  • fd:入参,要映射到内存中的文件描述符,有open函数打开文件时返回的值。

  • offset:入参,文件映射的偏移量,通常设置为0,代表从文件最前方开始对应,offset必须是分页大小的整数倍。

返回值
实际分配的内存的起始地址。

int munmap(void *start, size_t length)

与mmap函数成对使用的是munmap函数,它是用来解除映射的函数

参数

  • start:映射的起始地址
  • length:文件中映射到内存的部分的长度

返回值
解除成功返回0,失败返回-1。

	//打开文件fd = open("testdata",O_RDWR);//创建mmapstart = (char *)mmap(NULL,128,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0);//读取文件	strcpy(buf,start);printf("%s\n",buf);//写入文件strcpy(start,"Write to file!\n");munmap(start,128);close(fd);

这段代码实现了将测试文件testdata打开,并用mmap函数将文件映射到虚拟内存中,通过指针start对文件进行读写。在终端中可看到由文件读取的数据。程序结束后,可以查看testdata文件,来查看写入的数据。


http://www.ppmy.cn/news/765297.html

相关文章

第三章——处理数据

面向对象编程(OOP)的本质是设计并扩展自己的数据类型。设计自己的数据类型就是让类型与数据匹配。在创建自己的类型之前必须先了解C内置的类型。 内置的C类型分为两组:基本类型和复合类型 简单变量 程序通常都需要存储信息,为把…

酷比魔方iwork12 linux,【酷比魔方iwork12】报价_参数_图片_论坛_CUBE 酷比魔方i12酷比魔方平板电脑报价-ZOL中关村在线...

总结: 因不愿误导别人,从11月18日收到iwork12起,报告如下: 天才的设计:1.安卓5.1与win10双系统,性能之强悍、设计之灵感、使用之贴心,打得ipad pro和surface找不到牙,ipad pro没有安卓、win10, sueface没有…

安装netframewo酷比魔方平板电脑一键Root教程

国内知名平板电脑厂商酷比魔方旗下9.7寸IPS全视角高清硬屏U9GT2,配置了主频最高能达1.2GHz的RK2918主控,拥有1GBDDR3超大内存,支持Wi-Fi外挂3G以太网三种方式接入网络。十点触控以及IPS全视角高清显示,分辨率高达1024768&#xff…

酷比魔方iWork8,Win8平板,¥599

酷比魔方iWork8,Win8平板,¥599(淘宝2014.12.8) Win8.1 Intel Z3735系列64位四核CPU 2G内存,32G 8寸1280*800超清IPS屏 5000毫安超大容量电池

酷比魔方AI慧读器评测 – 实用,值,但不够智能

转自:https://post.m.smzdm.com/p/ar07qo8x/ 前段时间在网上看到了酷比魔方AI慧读器的宣传,说是可以让孩子爱上阅读,还可以教会孩子正宗的伦敦腔英语,真的让人很好奇这是一款什么样的神奇产品。正好4月份是小侄子三岁的生日&…

通过无人机技术,搭建边防无人机基站实现边境巡防系统的构思。

本篇文章主要讲解,利用无人机技术、信息化技术、图像识别技术实现边境巡防一体化监控系统的构思。 日期:2023年7月7日 作者:任聪聪 要知道祖国的疆域是异常庞大的,边境线的长度也是一个庞大的数字,依靠铁丝网又或者岗哨…

SSM项目前后端分离+IDEA运行环境(含前端源码)(个人博客系统)

目录 后端项目环境配置 1、创建一个SpringBoot项目,添加MyBatis框架和数据库MySQL驱动依赖 2、配置项目文件:application.yml 3、创建数据库表 4、创建分层结构目录 返回统一数据格式 创建统一数据格式返回类:AjaxResult 创建实现统一…

怎么用计算机算出锁屏密码,电脑怎么设置锁屏密码

在电脑上需要设置锁屏密码,那么应该在哪里设置呢?下面就和小编一起来看看吧。 设置电脑锁屏密码前提需要设置开机密码,否则无效 电脑怎么设置开机密码的步骤 右键我的电脑——管理 在计算机管理中找到——本地用户和组——用户 鼠标右键当前用…