Windows or Linux环境下利用“共享内存”实现进程间通信的C/C++代码
2017-09-22 16:48
1406 查看
原文链接:http://blog.csdn.net/stpeace/article/details/39534361(windows)
http://blog.chinaunix.net/uid-26000296-id-3421346.html(Linux,本文未列取,请查看链接)
进程A对应的程序:
进程B对应的程序:
结果:
http://blog.chinaunix.net/uid-26000296-id-3421346.html(Linux,本文未列取,请查看链接)
进程A对应的程序:
#include <iostream> #include <windows.h> using namespace std; #define BUF_SIZE 1025 char 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 1025 char 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; }
结果:
相关文章推荐
- [转]Windows环境下利用“共享内存”实现进程间通信的C/C++代码---利用CreateFileMapping和MapViewOfFile
- Windows环境下利用“共享内存”实现进程间通信的C/C++代码---利用CreateFileMapping和MapViewOfFile
- Windows环境下利用“共享内存”实现进程间通信的C/C++代码---利用CreateFileMapping和MapViewOfFile
- Windows环境下利用“共享内存”实现进程间通信的C/C++代码---利用CreateFileMapping和MapViewOfFile
- Linux环境进程间通信(五): 共享内存
- Linux环境进程间通信: 共享内存
- Linux环境进程间通信: 共享内存
- Linux环境进程间通信(五): 共享内存(下)
- Linux环境进程间通信(五): 共享内存(下)
- Linux环境进程间通信(五): 共享内存(上)
- Linux环境进程间通信:共享内存(上)
- Linux环境进程间通信(五): 共享内存(下)
- Linux环境进程间通信 共享内存
- Linux环境进程间通信(五): 共享内存(上)
- Linux环境进程间通信: 共享内存
- Linux环境进程间通信:共享内存
- Linux环境进程间通信:共享内存
- Linux环境进程间通信(五): 共享内存(下)
- Linux环境进程间通信(五): 共享内存(下)
- Linux环境进程间通信系列(五):共享内存