使用Win32控制台实现boost共享内存通信
发送端:
#define BOOST_DATE_TIME_NO_LIB
#include <boost/interprocess/shared_memory_object.hpp>
#include <boost/interprocess/mapped_region.hpp>
#include <iostream>
using namespace boost::interprocess;
using namespace std; int main()
{
//1 先删除之前创建的
shared_memory_object::remove("MySharedMemory_Name"); //2 创建共享内存段
shared_memory_object shm(create_only, "MySharedMemory_Name", read_write); //3 设置共享内存大小
shm.truncate(100); //4 映射共享内存片段
mapped_region region(shm, read_write); //5 初始化为0
std::memset(region.get_address(), 0, region.get_size()); //6 往内存里写入数据
string *strTest = static_cast<string*>(region.get_address());
*strTest = "hello world"; cout << "发送完成" << endl;
getchar();
return 0;
}
接收端:
#define BOOST_DATE_TIME_NO_LIB
#include <boost/interprocess/shared_memory_object.hpp>
#include <boost/interprocess/mapped_region.hpp>
#include <iostream>
using namespace boost::interprocess;
using namespace std; int main()
{
//1 读取共享内存
shared_memory_object shm(open_only, "MySharedMemory_Name", read_only); //2 映射共享内存
mapped_region region(shm, read_only); //3 获取数据
string* strRead = static_cast<string*>(region.get_address()); cout << *strRead << endl;
getchar();
return 0;
}
参考链接:
https://blog.csdn.net/u014385680/article/details/104682269
使用Win32控制台实现boost共享内存通信的更多相关文章
- Windows进程间共享内存通信实例
Windows进程间共享内存通信实例 抄抄补补整出来 采用内存映射文件实现WIN32进程间的通讯:Windows中的内存映射文件的机制为我们高效地操作文件提供了一种途径,它允许我们在WIN32进程中保 ...
- PHP进程通信基础——信号量+共享内存通信
PHP进程通信基础--信号量+共享内存通信 由于进程之间谁先执行并不确定,这取决于内核的进程调度算法,其中比较复杂.由此有可能多进程在相同的时间内同时访问共享内存,从而造成不可预料的错误.信号量这个名 ...
- linux 两个进程通过 共享内存 通信例子
例子1:两个进程通过共享内存通信,一个进程向共享内存中写入数据,另一个进程从共享内存中读出数据 文件1 创建进程1,实现功能,打印共享内存中的数据 #include <stdio.h> # ...
- win32进程间通讯--共享内存
小白一枚,如有不对,请各位大神多多指教! 最近看了看win32进程间通讯.简单写了写利用共享内存实现进程间通讯 使用共享内存实现进程间通讯: 1.在WM_CREATE消息下创建文件映射内核对象 hMa ...
- linux使用共享内存通信的进程同步退出问题
两个甚至多个进程使用共享内存(shm)通信,总遇到同步问题.这里的“同步问题”不是说进程读写同步问题,这个用信号量就好了.这里的同步问题说的是同步退出问题,到底谁先退出,怎么知道对方退出了.举个例子: ...
- 用boost共享内存实现进程通信的例子
发送端 #include "DBProc1.h" #include <string> #include <thread> #include <boos ...
- boost进程间通信经常使用开发一篇全(消息队列,共享内存,信号)
本文概要: 敏捷开发大家想必知道并且评价甚高,缩短开发周期,提高开发质量.将大project独立为不同的小app开发,整个开发过程,程序可用可測,所以提高了总体的质量.基于这样的开发模式和开发理念,进 ...
- Linux下多任务间通信和同步-mmap共享内存
Linux下多任务间通信和同步-mmap共享内存 嵌入式开发交流群280352802,欢迎加入! 1.简介 共享内存可以说是最有用的进程间通信方式.两个不用的进程共享内存的意思是:同一块物理内存被映射 ...
- System V IPC 之共享内存
IPC 是进程间通信(Interprocess Communication)的缩写,通常指允许用户态进程执行系列操作的一组机制: 通过信号量与其他进程进行同步 向其他进程发送消息或者从其他进程接收消息 ...
- 利用windows api共享内存通讯
主要涉及CreateFile,CreateFileMapping,GetLastError,MapViewOfFile,sprintf,OpenFileMapping,CreateProcess Cr ...
随机推荐
- URL中文转换成类似%E6%96%97%E7%A0%B4(url编码)格式
要将汉字转换成编码格式拼接成请求,没怎么搞过,一番查找,最终确定使用C# 里的WebUtility using System.Net; var a = WebUtility.UrlEncode(&qu ...
- .NET Bioss相关数据读写
本文我们介绍针对Bios如何读取.写入数据,比如最常见的SN读取以及烧录 WMI查询 先看看WMI方式,可以用于查询和管理Windows系统的各种信息,包括读取BIOS信息 WMI-Win32_BIO ...
- DVWA靶场Brute Force (暴力破解) 漏洞low(低),medium(中等),high(高),impossible(不可能的)所有级别通关教程及代码审计
暴力破解 暴力破解是一种尝试通过穷尽所有可能的选项来获取密码.密钥或其他安全凭证的攻击方法.它是一种简单但通常无效率的破解技术,适用于密码强度较弱的环境或当攻击者没有其他信息可供利用时.暴力破解的基本 ...
- Flybirds 问题汇总
1. HOOK-ERROR in before_all: AttributeError: 'ScreenRecordInfo' object has no attribute 'dev' 解决方法:
- .NET CORE 中用AutoMapper将实体转Dto
.NET CORE 中用AutoMapper将实体转Dto 星速云 2019-08-31 10:06:02 193 收藏展开在开发过程中,经常会碰到数据实体对象(Entity)和数据传输对象(Dto) ...
- Java开发常用工具链接-copy
Java开发常用工具链接这里汇总了下Java开发过程中常用的一些工具,与一些自动化生成工具. 1. Spring相关工具通过Sql生成Spring相关的项目. Sql生成SpringBoot项目通过M ...
- 阿里云-对象存储OSS
https://help.aliyun.com/product/31815.html 阿里云对象存储OSS(Object Storage Service)是一款海量.安全.低成本.高可靠的云存储服务, ...
- linux安装软件配置
CentOS7更换yum为阿里源 1 备份本地源mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backu ...
- VueJs(1)---操作指南
[VueJs入门] 一.上手步骤 vue.js和jquery一样,只要引入vue.js就可以了. 1.创建一个Vue实例: 先引入Vue.js文件,然后new一个Vue的实例即可.如下面的代码,通过& ...
- LeetCode 未验证规则
1. for循环容易忘记break,很多提交不过,都是因为这个 2. 左右指针,思考起来比较复杂,但是以代码容易理解.code精简为主,不要在乎省下一两次运算时间 3. 左右指针,有时候以left & ...