用内存映射文件在进程中共享数据http://blog.csdn.net/zicheng_lin/article/details/6660404
来源:互联网 发布:java记录访问次数 编辑:程序博客网 时间:2024/05/22 15:53
代码如下,具体解释在代码注释中已经说明
程序1:
- // 内存映射文件.cpp : 定义控制台应用程序的入口点。
- //
- #include "stdafx.h"
- #include <Windows.h>
- #include <iostream>
- #include <string>
- using namespace std;
- DWORD WINAPI FirstThread(PVOID pvParam);
- int _tmain(int argc, _TCHAR* argv[])
- {
- string str;
- //从页交换文件中挑拨物理存储器
- static HANDLE hFilemap = CreateFileMapping(INVALID_HANDLE_VALUE,NULL,PAGE_READWRITE,0,4*1024,_T("Shared"));
- //将文件的数据映射到进程的地址空间
- char * pView = (char *)MapViewOfFile(hFilemap,FILE_MAP_READ|FILE_MAP_WRITE,0,0,0);
- if(cin>>str)
- {
- strcpy(pView, (const_cast<char*> (str.c_str()))); //赋值
- for(int i=0; i<strlen(pView); ++i) //输出
- {
- cout<<pView[i];
- }
- }
- else
- {
- cout<<*pView<<endl;
- }
- system("pause");
- return 0;
- }
程序2:
- // 内存映射文件.cpp : 定义控制台应用程序的入口点。
- //
- #include "stdafx.h"
- #include <Windows.h>
- #include <iostream>
- #include <string>
- using namespace std;
- DWORD WINAPI FirstThread(PVOID pvParam);
- int _tmain(int argc, _TCHAR* argv[])
- {
- HANDLE hFilemap1 = OpenFileMapping(FILE_MAP_READ|FILE_MAP_WRITE,FALSE,_T("Shared")); //打开名为 Shared的映射对象.
- if(hFilemap1 == NULL)
- {
- cout<<"openfilemapping 失败"<<endl;
- }
- char *pView = (char*)MapViewOfFile(hFilemap1,FILE_MAP_READ|FILE_MAP_WRITE,0,0,0);
- if(pView == NULL)
- {
- cout<<"map view 失败"<<endl;
- }
- else
- {
- for(int i=0; i<strlen(pView); ++i)
- {
- cout<<pView[i];
- }
- UnmapViewOfFile(pView);
- }
- CloseHandle(hFilemap1);
- system("pause");
- return 0;
- }
- 用内存映射文件在进程中共享数据http://blog.csdn.net/zicheng_lin/article/details/6660404
- 内存映射文件http://blog.csdn.net/sky1415/article/details/5567200
- shmget - 共享内存 (转自:http://blog.csdn.net/icechenbing/article/details/7715472)
- init进程 http://blog.csdn.net/dagouaofei/article/details/5644119
- Linux0.11内核--内存组织和进程结构 http://blog.csdn.net/x_white/article/details/8459611
- 在linux进程中的信号屏蔽 http://blog.csdn.net/fjb2080/article/details/5174306
- linux基础编程 共享内存 使用内存映射接口mmap系统调用 blog.csdn.net/ghostyu/article/details/7736733
- 如何在C++中调用C程序?(http://blog.csdn.net/juanjuan888/article/details/6889843)
- 用内存映射文件在进程中共享数据
- 用内存映射文件在进程中共享数据
- 为什么要用DLL文件 http://blog.csdn.net/zhongjling/article/details/8089008
- .classpath文件有什么用?http://blog.csdn.net/shichaosong/article/details/9011695
- 在.NET使用JSON作为数据交换格式(转http://blog.csdn.net/zhoufoxcn/article/details/6254657)
- linux 查看进程和终止进程(http://blog.csdn.net/jbgtwang/article/details/3734881)
- 孤儿进程和僵尸进程 http://blog.csdn.net/liangkaiming/article/details/6230752
- nhibernate字段类型映射关系(转http://blog.csdn.net/nileel/article/details/3473866)
- Linux内核地址映射模型 http://blog.csdn.net/f22jay/article/details/7925531
- Tomcat中JVM内存溢出及合理配置(转:http://blog.csdn.net/ye1992/article/details/9344807)
- 新建Web网站与新建Web应用程序的区别
- 买股票前,需要弄清楚的东西
- Memcached windows 下安装与测试
- 封装一个SQLHelper
- java中的DataInputStream和DataOutputstream的讲解
- 用内存映射文件在进程中共享数据http://blog.csdn.net/zicheng_lin/article/details/6660404
- man
- sql中的联表操作
- Qt 导出pdf
- 八款开源 Android 游戏引擎 (巨好的资源)
- 使用tftp更新nandflash的数据(参考转载并修改)
- Java gson使用 将Java对象转为Json 并 Json转回Java对象
- HDU 3328
- 善用Android预定义样式