linux基础知识——mmap

1.mmap函数

\qquad返回值:成功时,返回创建的映射区首地址;失败时,返回宏MAP_FAILED
\qquad参数:
\qquad\quad第一个参数addr:建立映射区的首地址,有linux内核指定,使用时,直接传入NULL
\qquad\quad第二个参数length:建立的映射区的大小;
\qquad\quad第三个参数prot:映射区的权限PROT_READPROT_WRITEPROT_READ|PROT_WRITE
\qquad\quad第四个参数flags:标志位参数,MAP_SHARED:会将映射区所做的操作反映到物理设备(磁盘)上;MAP_PRIVATE:映射区所做的操作不会反映到物理设备上。
\qquad\quad第五个参数fd:用来建立映射区的文件描述符
\qquad\quad第六个参数offset:映射文件的偏移(4k的整数倍)

2.mmap的代码举例

#include<stdio.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<stdlib.h>
#include<errno.h>
#include<string.h>
#include<sys/mman.h>
#include<unistd.h>int main()
{int open_fd;open_fd = open("m.txt",O_RDWR|O_CREAT,0777);if(open_fd==-1){perror("m open fail");exit(1);}char* p = NULL;int ftruncate_fd;ftruncate_fd = ftruncate(open_fd,1024);if(ftruncate_fd==-1){perror("ftruncate fail");exit(1);}p = mmap(NULL,1024,PROT_READ|PROT_WRITE,MAP_SHARED,open_fd,0);if(p==MAP_FAILED){perror("mmap fail");exit(1);}strcpy(p,"hello world!\n");int close_mmap_fd;int close_fd;close_mmap_fd = munmap(p,1024);if(close_mmap_fd==-1){perror("close mmap fail");exit(1);}close_fd = close(open_fd);if(close_fd==-1){perror("m close fail");exit(1);}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/483459.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

威胁生存!科学家警告灾难性“气候临界点”已逼近

来源&#xff1a;中国新闻网 中新网10月26日电 综合报道&#xff0c;从联合国的一份报告草案中&#xff0c;科学家已发现多个灾难性的“气候临界点”。专家警告&#xff0c;临界点之间相互关联&#xff0c;可能产生连锁反应&#xff0c;成为一种生存威胁。据报道&#xff0c;根…

视音频开发测试文件下载

视音频开发过程中寻找各种合适的测试视频非常麻烦&#xff0c;无意间发现一个国外的网站提供各种格式和大小的视音频文件下载&#xff0c; 但是下载速度很慢&#xff0c;有总比没有好&#xff0c;凑合用吧&#xff1a; https://www.sample-videos.com/ 转载于:https://www.cnbl…

王道计算机网络 网络层整理 超详细版

网络层功能概述 主要任务是把分组从源端传到目的端&#xff0c;为分组交换网上的不同主机提供通信服务。网络层传输单位是数据报。 1、路由选择与分组转发 2、异构网络互联 3、拥塞控制 数据交换方式 电路交换 在进行数据传输时&#xff0c;两个结点之间必须先建立一条专用…

Linux的基础知识——mmap父子通信进程和匿名通信

1.mmap父子进程通信 \qquad父子等有血缘关系的进程之间也可以通过mmap建立的映射区来完成数据通信。但相应的要在创建映射区时候指定对应的标志位参数flags: \qquadMAP_PRIVATE&#xff1a;父子进程各自独占映射区&#xff1b;MAP_SHARED&#xff1a;父子进程共享映射区。 2.m…

ios点击有300毫秒延迟,输入框必须重压或长按才能获取焦点唤起软键盘

以下方法主要针对在vue中的使用 // ios点击有300毫秒延迟 1. 安装依赖包cnpm install fastclick --save 2. 在 /src/main.js 中引入并使用import FastClick from fastclickFastClick.attach(document.body)// 输入框必须重压或长按才能获取焦点唤起软键盘 // 这是由于上面引入了…

Forerunner:首个面向“多未来”的推测执行技术

来源&#xff1a;微软研究院AI头条编者按&#xff1a;10月26-29日&#xff0c;系统领域的全球顶会 SOSP 2021 在线上举办。在本届大会上&#xff0c;微软亚洲研究院研究员陈洋、郭众鑫、李润怀&#xff08;实习生&#xff0c;浙江大学&#xff09;、陈硕、周礼栋、张宪以及浙江…

linux的基础知识——信号的概念

1.计算机信号的特点 \qquad简单&#xff1b;不能携带大量信息&#xff1b;满足某个特设条件才发送 2.信号的机制 \qquadA与B两个进程&#xff0c;A向B发送一个信号&#xff0c;此时B进程正在执行自己的程序&#xff0c;在收到信号时&#xff0c;会暂停程序的执行&#xff0c;先…

2021-07-23 小记

https://github.com/XiaoJing-C 整理了一下GitHub&#xff0c;网络连接总是不稳定&#xff0c;uu们有无好的解决方法&#xff1f;

Gartner发布对2022年及以后IT组织和用户的十大预测

来源&#xff1a;Gartner中国编辑&#xff1a;蒲蒲Gartner于近日发布对2022年及以后的十大战略预测。Gartner的十大预测从三个方面探讨了企业和IT领导人在持续中断和不确定性中获得的经验教训。这三个方面分别是&#xff1a;朝以人为本的方向推进、努力提高韧性以及超越期望的能…

王道计算机网络 传输层整理 超详细版

传输层是主机才有的层次。 传输层的功能 1、传输层提供进程和进程之间的逻辑通信。&#xff08;网络层提供主机之间的通信&#xff09; 逻辑通信&#xff1a;传输层之间的通信好像是沿着水平方向传送数据&#xff0c;但事实上这两个传输层之间并没有一条水平方向的物理连接。…

这个最基本的生命细节才被揭开——25毫秒核孔穿梭

来源&#xff1a;生物通细胞中的所有蛋白质都是由复杂的分子机器组装而成的。这些核糖体的前体在细胞核中产生&#xff0c;然后通过所谓的核孔进入细胞。波恩大学和苏黎世联邦理工大学的研究人员首次在活细胞中拍摄了这个基本过程。他们的实验提高了对核糖体是如何产生的理解。…

计算机网络——基本介绍

1.计算机网络的概念 \qquad计算机网络是一个将分散的&#xff0c;具有独立功能的计算机系统&#xff0c;通过通信设备与线路连接起来&#xff0c;由功能完善的软件实现资源共享和信息传递的系统。 \qquad这里的计算机系统&#xff0c;也可以成为端系统&#xff0c;其包括但不限…

Mysql data type(数据类型)

MySQL 数据类型 MySQL中定义数据字段的类型对你数据库的优化是非常重要的。 MySQL支持多种类型&#xff0c;大致可以分为三类&#xff1a;数值、日期/时间和字符串(字符)类型。 数值类型 MySQL支持所有标准SQL数值数据类型。 这些类型包括严格数值数据类型(INTEGER、SMALLINT、…

王道计算机网络 应用层整理 超详细版

应用层概述 应用层对应用程序的通信提供服务。 应用层协议定义&#xff1a; 应用进程交换的报文类型&#xff08;请求/响应&#xff09; 各种报文类型的语法&#xff0c;如报文中的各个字段及其详细描述。 字段的语义&#xff0c;即包含在字段中的信息的含义。 进程何时、…

Facebook正式改名Meta,一个元宇宙新纪元由此开始

All in Metaverse&#xff0c;扎克伯格豪赌一个未来。来源&#xff1a;硅星人文&#xff1a;Juny 编辑&#xff1a;Lianzi美西时间早上7点&#xff0c;硅谷的天刚蒙蒙亮。Facebook硅谷总部前公司标志牌被蒙上了一层幕布。工作人员在标志牌前拉起了屏障&#xff0c;静静等待着…

计算机网络——标准化工作及相关组织

1.标准的分类 \qquad法定标准&#xff1a;由权威机构制定的&#xff0c;正式的&#xff0c;合法的标准&#xff0c;比如OSI标准&#xff1b;事实标准&#xff1a;某些强势产品在经过时间之后&#xff0c;这些产品的协议和技术就成为了标准&#xff0c;比如TCP/IP协议。 2.标准…

使用 Blender* 重新拓扑 VR 和游戏素材

本文介绍如何将网格重新拓扑成一个整洁的低密度模型&#xff0c;然后 UV 解包该网格&#xff0c;以便将纹理贴添加至新模型。本文还将探讨如何使用免费工具&#xff0c;比如 Blender* 及其 Bsurface 插件&#xff0c;重新拓扑雕塑的 3D 网格。查看详情转载于:https://www.cnblo…

中缀表达式转换为前缀或后缀表达式的手工做法

以 a/b ( c*d - e*f) / g 为例&#xff1a; 步骤1&#xff1a;按照运算符的优先级对所有的运算单元加括号。 ((a/b) (( (c*d) - (e*f)) / g)) 步骤2&#xff1a;转换为前缀或后缀表达式。 前缀&#xff1a;把运算符号移动到对应的括号前面&#xff0c;式子变为 (/(ab)/(-(*(…

AI学会灌水和造假!Google新研究揭露了AI现实应用的陷阱

来源&#xff1a;Google AI、新智元作者&#xff1a;Alex DAmour、atherine Heller今天&#xff0c;机器学习&#xff08;ML&#xff09;模型得到了大规模的使用&#xff0c;而且影响力也越来越大。然而&#xff0c;当它们被用于现实世界的领域时&#xff0c;往往表现出意想不到…

计算机网络——速率相关的性能指标

1.什么是速率&#xff1f; \qquad速率即数据率或称数据传输率或比特率。比特是数据传输的单位&#xff0c;从比特的角度看&#xff0c;速率就是在计算机网络上的主机在数字信道上传送数据位数的速率&#xff0c;单位有b/s&#xff0c;kb/s千&#xff0c;Mb/s兆&#xff0c;Gb/s…