映射文件实现进程通信
发送端
//1.在页面文件中创建一个可共享的文件句柄//2使用默认安全对象//3.可读,可写打开打开映射//4.最大长度的高32位//5.最大长度的低32位,此为size大小//6.指定文件映射对象的名字//return:新建文件映射对象的句柄,0表示出错HANDLE m_sh = CreateFileMappingA(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, 1000, "yingshe");if (!m_sh){return 0;}//1.文件映射对象的句柄//2.权限//3.高32位,低32位,0:映射整个映像文件//return:文件映射在内存中的起始地址char* head = (char*)MapViewOfFile(m_sh, FILE_MAP_ALL_ACCESS, 0, 0, 0);*(int*)head = 90;
接收端
//1.权限:可读,可写//2.TRUE:表示可以由当前进程启动的新进程继承//3.文件映射对象的名称//return:文件映射对象的句柄,0表示出错HANDLE m_handle = OpenFileMappingA(FILE_MAP_ALL_ACCESS, TRUE, "yingshe");if (!m_handle){return 0;}int* head = (int*)MapViewOfFile(m_handle, FILE_MAP_ALL_ACCESS, 0, 0, 0);std::cout << *head;
通常用的是boost是共享的内存,这个映射文件实现的。
映射文件实现进程通信相关推荐
- 使用内存映射文件在进程之间共享数据
数据共享方法是通过让两个或多个进程映射同一个文件映射对象的视图来实现的,这意味着它们将共享物理存储器的同一个页面.因此,当一个进程将数据写入一个共享文件映射对象的视图时,其他进程可以立即看到它们视图中 ...
- windows笔记-内存映射文件
Windows提供了3种进行内存管理的方法: • 虚拟内存,最适合用来管理大型对象或结构数组. • 内存映射文件,最适合用来管理大型数据流(通常来自文件)以及在单个计算机上运行的多个进程之间共享数据. ...
- Windows核心编程 第十七章 -内存映射文件(下)
17.3 使用内存映射文件 若要使用内存映射文件,必须执行下列操作步骤: 1) 创建或打开一个文件内核对象,该对象用于标识磁盘上你想用作内存映射文件的文件. 2) 创建一个文件映射内核对象,告诉系统该 ...
- 内存映射文件——Windows核心编程学习手札之十七
内存映射文件 --Windows核心编程学习手札之十七 与虚拟内存一样,内存映射文件保留地址空间,并将物理存储器提交给该区域,差别在于所提交的物理存储器是磁盘上有文件存在的空间,而非系统的页文件,一旦 ...
- C#内存映射文件学习总结
C#内存映射文件学习 http://www.cnblogs.com/flyant/p/4443187.html 内存映射文件是由一个文件到进程地址空间的映射. C#提供了允许应用程序把文件映射到一个进 ...
- Win32汇编——内存映射文件
1.概念.好处及原理:书P374 2.内存映射文件是多个进程进行通信的最有效的方法 3.使用函数: 创建内存映射文件对象:CreateFileMapping ,决定是在磁盘文件上建立内存映射文件还是在 ...
- c语言 内存映射文件,内存映射文件
内存映射文件 03/30/2017 本文内容 内存映射文件包含虚拟内存中文件的内容. 借助文件和内存空间之间的这种映射,应用(包括多个进程)可以直接对内存执行读取和写入操作,从而修改文件. 可以使用托 ...
- 《windows核心编程》 17章 内存映射文件
内存映射文件主要用于以下三种情况: 系统使用内存映射文件载入并运行exe和dll,这大量节省了页交换文件的空间以及应用程序的启动时间 开发人员可以使用内存映射文件来访问磁盘上的数据文件.这使得我们可以 ...
- java 内存映射文件进程间通讯_[转]Windows环境下利用“共享内存”实现进程间通信的C/C++代码---利用CreateFileMapping和MapViewOfFile...
进程间的通信方式有很多种, 上次我们说了最傻瓜的"共享外存/文件"的方法. 那么, 在本文中, 我们即将学习"共享内存"的方式实现进程间的通信, 这是IPC最快 ...
- 随想录(基于内存映射的进程通信)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 在通信协议的开发中,有的时候为了本地调试的需要,需要实现进程之间的通信.在windows系统中 ...
最新文章
- 一行代码快速搞定Flowable断点下载(上)
- PCL、XPS转换成PDF的控件activePDF Meridian​
- pycharm 安装与激活
- utf-16 java_Java、Unicode、UTF-8、UTF-16之间的关系
- OCFS2在Linux下配置文档
- 投影串口测试程序_串口测试方法和步骤
- insert into user mysql root_跳过授权表登录后使用insert into创建root权限用户
- 数据--第37课 - 线索化二叉树
- 在Sqlite中通过Replace来实现插入和更新
- 教你如何使用抖音直播间数据分析工具
- 谈谈杭州市未来15年城市发展重点和杭州第二机场位置预测
- 怎么用计算机弹出soldout,《SOLDOUT2》游戏怎么玩 游戏攻略玩法全面介绍
- 解决Proteus中的[SPICE] * stepping time与[SPICE] TRAN Timestep too small错误
- Scratch入门:软件界面介绍
- 2020牛客暑期多校训练营(第七场)J.Pointer Analysis
- vscode 插件 leetcode 登录失败问题
- JavaScript:鼠标拖曳效果
- [转]solaris 10 使用手册
- k-nearest neighbor,k近邻法
- python怎么运行代码-python如何运行代码