window 共享内存 C基础例子
发布日期:2021-06-30 10:11:40 浏览次数:3 分类:技术文章

本文共 1310 字,大约阅读时间需要 4 分钟。

代码:

#include 
#include
/* 关闭程序,自动释放映射*/int main(){ char *pData = NULL; // 首先试图打开一个命名的内存映射文件对象 HANDLE hMap = OpenFileMapping(FILE_MAP_ALL_ACCESS, 0, "test1"); if (NULL == hMap) { printf("open failed,creating\n"); hMap = CreateFileMapping(INVALID_HANDLE_VALUE,//=0xFFFFFFFF 就是内存映射 物理文件句柄的一个特殊情况 NULL, //安全设置 NULL使用默认的 PAGE_READWRITE, //保护设置,可读可写 0, // 1024, //大小 "test1"); //共享内存名称,注意不能重名 // 映射对象的一个视图,得到指向共享内存的指针,设置里面的数据 if (NULL != hMap){ printf("create suscess\n"); pData = (char *)MapViewOfFile(hMap, FILE_MAP_WRITE,0,0,0); if(pData==NULL){ printf("getdatafailed close\n"); CloseHandle(hMap); hMap = NULL; } else{ printf("get data susccess\n"); *(pData+1) = 23; } } system("pause"); } else { printf("open susccess\n"); pData = (char *)MapViewOfFile(hMap, FILE_MAP_WRITE,0,0,0); if(pData==NULL){ printf("get datafailed close\n"); CloseHandle(hMap); hMap = NULL; } else{ printf("get data susccess\n"); printf("%d,%d,%d\n",*(pData),*(pData+1),*(pData+2)); } //关闭文件对象句柄 CloseHandle(hMap); } return 0;}

测试:

先打开一个:

再打开另外一个:

转载地址:https://islet.blog.csdn.net/article/details/117821866 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:ssh连接慢的问题记录
下一篇:OpenPLC 常规变量类型大小范围

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月27日 17时34分08秒