OK6410A 开发板 (八) 96 linux-5.11 OK6410A文件的访问 open-mmap-close

发布者:翅膀小鹰最新更新时间:2022-08-15 来源: csdn关键字:OK6410A  11 手机看文章 扫描二维码
随时随地手机看文章

用户空间用的mmap函数,是glibc 提供的

声明通过 man mmap 查找


#include

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


mmap 其中的一个用途(共享文件映射/私有文件映射) 是 访问文件


demo

#include

#include

#include

#include

#include

#include

#include

#include


int main(int argc, char * argv[])

{

    int fd, nread;

    struct stat sb;

    char *mapped;


    //打开文件

    if((fd = open(argv[1], O_RDWR|O_CREAT,S_IRWXU)) < 0){

        perror("open") ;

        return -1;

    }


    write(fd,"123456789ABC",strlen("123456789ABC"));


    //获取文件的属性

    if((fstat(fd, &sb)) == -1 ){

        perror("fstat") ;

        return -2;

    }


    if (sb.st_size == 0)

        sb.st_size == 0x1000;



    //将文件映射至进程的地址空间

    if((mapped = mmap(NULL,

                    sb.st_size,

                    PROT_READ|PROT_WRITE,

                    MAP_SHARED,

                    fd,

                    0)) ==(void*) -1){

        perror("mmap") ;

        return -3;

    }


    //修改N个字符,同步到磁盘文件

    mapped[0] = 'h';

    mapped[1] = 'e';

    mapped[2] = 'l';

    mapped[3] = 'l';

    mapped[4] = 'o';

    mapped[5] = ' ';

    mapped[6] = 'W';

    mapped[7] = 'o';

    mapped[8] = 'r';

    mapped[9] = 'l';

    mapped[10] = 'd';


    if((msync((void *)mapped, sb.st_size, MS_SYNC)) == -1){

        perror("msync") ;

        return -4;


        //释放存储映射区

        if((munmap((void *)mapped,sb.st_size)) == -1){

            perror("munmap");

            return -5;

        }

    }


    close(fd);

    return 0;

}

关键字:OK6410A  11 引用地址:OK6410A 开发板 (八) 96 linux-5.11 OK6410A文件的访问 open-mmap-close

上一篇:OK6410A 开发板 (八) 97 linux-5.11 OK6410A glibc提供的mmap的四种用途
下一篇:OK6410A 开发板 (八) 95 linux-5.11 OK6410A linux高速缓存

推荐阅读最新更新时间:2024-11-17 23:12

国外媒体发iPhone 11渲染图:取消刘海屏
        今年的iPhone新品亮点并不多,主力机型iPhone XS仅在上代iPhone X的基础上作出了常规升级,这令用户对下代iPhone充满期待。网友猜测明年的iPhone会命名为iPhone 11,外媒今日发布的内容也印证了这一猜测,称新iPhone将会命名为iPhone XI,罗马数字XI即对应阿拉伯数字11。外媒还给出了iPhone XI的渲染图。   从渲染图来看,iPhone XI不再使用刘海屏设计,而采用了屏幕钻孔的方式来放置前置相机。不过与已经发布的三星、华为打孔屏手机不同的是,iPhone XI前置相机为双摄,位于屏幕上方中间位置。 机身边框则与iPhone 5s类似,采用平直的设计,极
[手机便携]
2017年全球半导体硅晶圆出货达114.48亿平方英寸创新高
  随着全球半导体市场销售额不断向上攀升,半导体用硅 晶圆 (silicon wafer)出货面积也在不断成长。下面就随半导体小编一起来了解一下相关内容吧。   国际半导体设备材料产业协会( SEMI )最新预估,2017年全球半导体用抛光(polished)与外延(epitaxial)硅 晶圆 出货面积将较2016年大幅增加8.2%,达114.48亿平方英寸,创史上新高纪录。    SEMI 表示,由于汽车、医疗、穿戴式,以及高性能运算应用设备等的连网需求增加,预期全球半导体用硅 晶圆 每年出货面积将会呈现稳定成长。预估2018与2019年出货面积还会继续成长,分别达到118.14亿与122.35亿平方英寸,迭创历史新高。  
[半导体设计/制造]
特斯拉V11版本软件更新曝光 新增自动控制驾驶功能
近日据外媒报道,有相关测试人士进入了一台最新软件版本的 特斯拉Model S ( 参数 | 询价 ) ,并拍摄了特斯拉最新的系统界面。从照片可以看出这是特斯拉最新的车机系统,预计会是V11版本。其实特斯拉一直在向不同车型推送新的软件更新,会对现有的功能进行一些细微调整,但终究不痛不痒没有很大变动。这次曝光的最新系统版本,应该是将之前测试的几个功能捆绑在一个更新包中。 特斯拉最新软件界面 特斯拉在今年1月份更新的Model S和Model X软件版本中,配备了不同长宽比的新屏幕,并且优化了部分功能。特斯拉旗下汽车产品最后一次重大更新是在2019年9月的Tesla V10,这次更新加入了Tesla影院、卡拉OK,以及对特斯拉
[汽车电子]
特斯拉V<font color='red'>11</font>版本软件更新曝光 新增自动控制驾驶功能
华为DriveONE助力阿维塔11打造超长续航驾乘体验
搭载DriveONE动力域高压全栈解决方案的阿维塔11在重庆车展正式亮相。长安汽车、华为、宁德时代三家企业为这辆充满未来感的智能电动轿跑SUV揭幕。 华为DriveONE作为动力域行业的创新领先者,帮助阿维塔车型提升其在动力域方面的性能表现,帮助其打造超快充、超强动力、超静谧,超长续航的驾乘体验。 DriveONE动力域高压全栈解决方案, 立享10min@200km的快充体验 针对用户关注的充电速度慢的问题,阿维塔11高端轿跑SUV采用华为先进的DriveONE 800V高压平台,可实现充电10min,续航200km的快充体验,成为行业又一领先量产上市的800V高压平台车型。相比业界传统低电压架构,华为800V高压平台架构
[嵌入式]
小米11推MIUI 12.0.16稳定版内测更新
小米集团副总裁常程表示,小米11正在更新MIUI 12.0.16稳定版内测。 在新版系统中,小米11修复了虚拟AB分区异常重启后判断异常,导致OTA启动失败问题。 此外,小米11还优化了个别场景下手机灭屏偶现噪声的问题,优化个别三方App因为兼容性以及内存分配异常导致无响应问题。 小米手机系统软件部总监张国全表示,MIUI 12.0.16稳定版把近期用户反馈的大部分问题做了修复,正在内测,很快大家都能收到。 小米11手机 MIUI 12.0.16稳定版内测更新内容: 优化个别场景下,手机灭屏偶现噪声的问题 优化个别三方 App因为兼容性,以及内存分配异常导致无响应问题 优化屏幕显示效果,降低特殊场景边缘锯齿及边缘区域异常显示
[手机便携]
富昌能源事业部亮相PV China 2011展示多款太阳能解决方案
中国上海,2011年12月7日——近日,富昌能源事业部在为期三天的2011年中国光伏发电与系统集成技术研讨会暨展示会上展示了多款光伏微型逆变器、最大功率追踪优化器、离网并网逆变器、电流/电压检测系统等,富昌电子能源事业部业务拓展经理朱华刚就太阳能光伏领域的发展趋势及最新技术发表了精彩演讲。依托于富昌电子与知名供应商之间密切的合作体系以及多年来在太阳能光伏领域的投入,富昌能源事业部可以提供可靠、高效的再生能源解决方案,现已成为分销行业的太阳能元器件专家。 能源问题成为困扰现代社会发展的难题之一,新能源的开发受到世界各国越来越多的关注。作为发展前景广阔的可再生能源之一,太阳能具有清洁、安全、便利、高效、节能等特点,然而优点众多的太阳
[电源管理]
具扩展频谱频率调制和坚固短路保护的110V LED 控制器
    加利福尼亚州米尔皮塔斯 (MILPITAS, CA) – 2013 年 9 月 19 日 – 凌力尔特公司 (Linear Technology Corporation) 推出 110V、高压侧电流检测 DC/DC 转换器 LT3795,该器件用来将电流或电压调节至恒定值,非常适用于驱动高亮度 (HB) LED。其 4.5V 至 110V 输入电压范围使该器件适用于多种应用,包括汽车、工业和建筑照明。     LT3795 采用外部低压侧 N 沟道 MOSFET,可以用标称的 12V 输入驱动高达 90V 的白光 LED,从而提供超过 50W 的功率。扩展频谱频率调制降低了 EMI 辐射,同时内部 PMOS 开关驱动器在升
[电源管理]
具扩展频谱频率调制和坚固短路保护的110V LED 控制器
ST推出低功耗硅振荡器STCL1120系列
2008年6月24日, 模拟与混合信号 IC 市场的世界领先厂商意法半导体 推出 STCL1120 系列硅振荡器,新产品启动快速,抗振 动 、 冲击 和抗电磁干扰( EMI )能力强,电流消耗低,片选控制功能使电源管理比其它品牌的硅振荡器更加容易,能效更高。 STCL1120 系列的首批产品是 10MHz 、 12MHz 和 16MHz 的振荡器。 12MHz 的产品启动时间仅为 50 微秒,工作电流在同类产品中最低( 0.65mA )。片选功能可以让工程师节省电能。这款产品成本低廉,强稳耐用,是替代陶瓷或晶体振荡器的极佳解决方案。 STCL1120 另一大优点是无需外部元器件,为设计
[模拟电子]
ST推出低功耗硅振荡器STCL1120系列
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved