C++ 共享内存
来源:互联网 发布:古剑奇谭ol 知乎 编辑:程序博客网 时间:2024/06/05 06:36
#include <windows.h>
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
int main()
{
string strMapName("ShareMemory"); // 内存映射对象名称
string strComData("This is common data!"); // 共享内存中的数据
LPVOID pBuffer; // 共享内存指针
// 首先试图打开一个命名的内存映射文件对象
HANDLE hMap = ::OpenFileMapping(FILE_MAP_ALL_ACCESS, 0, strMapName.c_str());
if (NULL == hMap)
{ // 打开失败,创建之
hMap = ::CreateFileMapping(INVALID_HANDLE_VALUE,
NULL,
PAGE_READWRITE,
0,
strComData.length()+1,
strMapName.c_str());
// 映射对象的一个视图,得到指向共享内存的指针,设置里面的数据
pBuffer = ::MapViewOfFile(hMap, FILE_MAP_ALL_ACCESS, 0, 0, 0);
strcpy((char*)pBuffer, strComData.c_str());
cout << "写入共享内存数据:" << (char *)pBuffer << endl;
}
else
{ // 打开成功,映射对象的一个视图,得到指向共享内存的指针,显示出里面的数据
pBuffer = ::MapViewOfFile(hMap, FILE_MAP_ALL_ACCESS, 0, 0, 0);
cout << "读取共享内存数据:" << (char *)pBuffer << endl;
}
getchar(); // 注意,进程关闭后,所有句柄自动关闭,所以要在这里暂停
// 解除文件映射,关闭内存映射文件对象句柄
::UnmapViewOfFile(pBuffer);
::CloseHandle(hMap);
system("pause");
return 0;
}
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
int main()
{
string strMapName("ShareMemory"); // 内存映射对象名称
string strComData("This is common data!"); // 共享内存中的数据
LPVOID pBuffer; // 共享内存指针
// 首先试图打开一个命名的内存映射文件对象
HANDLE hMap = ::OpenFileMapping(FILE_MAP_ALL_ACCESS, 0, strMapName.c_str());
if (NULL == hMap)
{ // 打开失败,创建之
hMap = ::CreateFileMapping(INVALID_HANDLE_VALUE,
NULL,
PAGE_READWRITE,
0,
strComData.length()+1,
strMapName.c_str());
// 映射对象的一个视图,得到指向共享内存的指针,设置里面的数据
pBuffer = ::MapViewOfFile(hMap, FILE_MAP_ALL_ACCESS, 0, 0, 0);
strcpy((char*)pBuffer, strComData.c_str());
cout << "写入共享内存数据:" << (char *)pBuffer << endl;
}
else
{ // 打开成功,映射对象的一个视图,得到指向共享内存的指针,显示出里面的数据
pBuffer = ::MapViewOfFile(hMap, FILE_MAP_ALL_ACCESS, 0, 0, 0);
cout << "读取共享内存数据:" << (char *)pBuffer << endl;
}
getchar(); // 注意,进程关闭后,所有句柄自动关闭,所以要在这里暂停
// 解除文件映射,关闭内存映射文件对象句柄
::UnmapViewOfFile(pBuffer);
::CloseHandle(hMap);
system("pause");
return 0;
}
1 0
- C语言 共享内存
- C linux 共享内存
- c内存共享
- linux-c: ipc_共享内存
- linux C共享内存函数
- linux C共享内存1
- linux c 共享内存编程
- 5. linux C -- 共享内存
- 【C语言】【unix c】共享内存
- Linux C 消息队列和共享内存
- linux c 共享内存编程学习记录
- linux下C的共享内存编程
- C语言共享内存-基本操作
- Android 匿名共享内存C接口分析
- win平台C语言共享内存通信
- Linux C——共享内存
- Android 匿名共享内存C接口分析
- Java与VC/C/C++共享内存
- Linux运维笔记-文档总结-系统日志
- 经典SQL语句大全
- 数字序列全组合(递归)
- Python性能优化的20条建议
- 自定义ProgressStateLayout实现网络请求状态间的相互切换
- C++ 共享内存
- 解决Ubuntu启动时出现“welcome to emergency mode”的问题
- 上传图片的代码demo
- IP地址划分教程和子网掩码
- APK反编译 apktool使用教程
- Halcon中模板匹配方法的总结归纳
- 输入两个正整数,求它们的最大公约数和最小公倍数。
- Hadoop集群datanode磁盘不均衡的解决方案
- python基础教程学习笔记 第三章 字符串