Windows or Linux环境下利用“共享内存”实现进程间通信的C/C++代码
来源:互联网 发布:肩颈按摩仪 知乎 编辑:程序博客网 时间:2024/06/06 01:01
原文链接:http://blog.csdn.net/stpeace/article/details/39534361(windows)
http://blog.chinaunix.net/uid-26000296-id-3421346.html(Linux,本文未列取,请查看链接)
进程A对应的程序:
#include <iostream>#include <windows.h>using namespace std;#define BUF_SIZE 1025char szName[] = "NameOfMappingObject"; // 共享内存的名字int main(){// 创建共享文件句柄 HANDLE hMapFile = CreateFileMapping( INVALID_HANDLE_VALUE, // 物理文件句柄 NULL, // 默认安全级别 PAGE_READWRITE, // 可读可写 0, // 高位文件大小 BUF_SIZE, // 地位文件大小 szName // 共享内存名称); char *pBuf = (char *)MapViewOfFile(hMapFile, // 共享内存的句柄 FILE_MAP_ALL_ACCESS, // 可读写许可 0, 0, BUF_SIZE); while(1) {cout << "input..." << endl; char szInfo[BUF_SIZE] = {0}; gets(szInfo); // 其实gets并不安全 strncpy(pBuf, szInfo, BUF_SIZE - 1);pBuf[BUF_SIZE - 1] = '\0'; }UnmapViewOfFile(pBuf); CloseHandle(hMapFile);return 0;}
进程B对应的程序:
#include <iostream>#include <windows.h>using namespace std;#define BUF_SIZE 1025char szName[] = "NameOfMappingObject"; // 共享内存的名字int main(){// 创建共享文件句柄 HANDLE hMapFile = OpenFileMapping( INVALID_HANDLE_VALUE, // 物理文件句柄 NULL, // 默认安全级别 PAGE_READWRITE, // 可读可写 0, // 高位文件大小 BUF_SIZE, // 地位文件大小 szName // 共享内存名称); char *pBuf = (char *)MapViewOfFile(hMapFile, // 共享内存的句柄 FILE_MAP_ALL_ACCESS, // 可读写许可 0, 0, BUF_SIZE); while(1) { cout << "press any button to receive data..." << endl; getchar();cout << pBuf << endl; }UnmapViewOfFile(pBuf); CloseHandle(hMapFile);return 0;}
结果:
阅读全文
0 0
- Windows or Linux环境下利用“共享内存”实现进程间通信的C/C++代码
- Windows环境下利用“共享内存”实现进程间通信的C/C++代码---利用CreateFileMapping和MapViewOfFile
- Windows环境下利用“共享内存”实现进程间通信的C/C++代码---利用CreateFileMapping和MapViewOfFile
- Windows环境下利用“共享内存”实现进程间通信的C/C++代码---利用CreateFileMapping和MapViewOfFile
- linux c之使用共享内存实现进程间通信
- linux下C语言编程4-使用共享内存实现进程间通信
- linux下C语言编程4-使用共享内存实现进程间通信2
- linux进程间的通信(C): 共享内存
- linux进程间的通信(C): 共享内存
- linux进程间的通信(C): 共享内存
- linux进程间的通信(C): 共享内存
- Linux下的C语言编程——进程间通信——内存共享
- Linux进程通信---共享内存 代码实现
- Windows下利用C语言程序设置环境变量---能否用环境变量实现进程间的通信?
- Linux下共享内存通信实现A进程死循环输出A后被C进程处理输出C
- Linux环境进程间通信 共享内存(下)
- Linux环境进程间通信之共享内存(下)
- Linux环境进程间通信--共享内存(下)
- EPM问题汇总之-SmartView无法连接Essbase
- Android性能优化之电量优化
- C#学习笔记1-命名空间、标识符和关键字
- 使用 getResource 获取文件路径
- QT on Android是否不太适合用C++,而是QML?
- Windows or Linux环境下利用“共享内存”实现进程间通信的C/C++代码
- PHP中日期遍历
- java中基本类型和字符串之间的转换
- php redis lrem 删除不了是怎么回事
- 求1+2+3+...+n
- 慎用BeanUtils的对象拷贝方法
- jdbctemplate中用in查询用法
- websocket、短连接长连接以及轮询简介
- redis实现消息队列