内存映射的用法

原创 2005年04月30日 17:03:00

内存映射的作用之一是可以在进程之间进行通信,

鉴于自己当时搜索资料时的痛苦,以及有很多网友虽然知道有这几个函数,但是不知道怎么结合用,下面我列出了一个应用的例子:

SData是一个结构体,

创建内存映射

// mapping data

int iLengByte = sizeof(SData);

LPBYTE lpData;

HANDLE hMap = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE | SEC_COMMIT, 0,iLengByte, "S_DATA");

if (hMap != NULL)

{

       lpData = (LPBYTE)MapViewOfFile(hMap, FILE_MAP_WRITE, 0, 0, 0);

       if (lpData == NULL)

       {

              CloseHandle(hMap);

              hMap = NULL;

              return;

       }

       SData Data;      

       memcpy(lpData,(LPBYTE)(&Data),iLengByte);//copy head data to mapping file  

}

//free the resource

if (hMap != NULL)

{                  

       UnmapViewOfFile(lpData);

       lpData = NULL;

       CloseHandle(hMap);

       hMap = NULL;

}           

 

 

打开内存映射并使用

struct SData data;

HANDLE m_hMap = OpenFileMapping(FILE_MAP_READ, FALSE, "S_DATA");

if (m_hMap == NULL)  return;

LPBYTE lpData = (LPBYTE)MapViewOfFile(m_hMap,FILE_MAP_READ,0,0,0);

if (lpData == NULL)

{

       CloseHandle(m_hMap);

       m_hMap=NULL;

       return;

}

memcpy(&data, (SData*)(lpData), sizeof(SData));//copy the head data

//release mem

UnmapViewOfFile(lpData);

lpData = NULL;

CloseHandle(m_hMap);

m_hMap = NULL; 

Linux下内存映射文件的用法简介

由于项目需要,所以学习了一下Linux下内存映射文件的用法,在这里共享一下自己的收获,希望大家提出宝贵意见,进行交流。              简介:         内存映射文件与虚拟内存有...
  • yasaken
  • yasaken
  • 2012年02月02日 17:08
  • 12783

内存映射文件

  • 2015年04月11日 11:19
  • 5.75MB
  • 下载

java nio 之MappedByteBuffer,高效文件/内存映射

MappedByteBuffer是java nio引入的文件内存映射方案,读写性能极高。NIO最主要的就是实现了对异步操作的支持。其中一种通过把一个套接字通道(SocketChannel)注册到一个选...

内存映射IO空间的读写函数writeb(), writew(), writel()

分类: 嵌入式 readb(), readw(), readl()函数 功能: 从内存映射的 I/O 空间读取数据。 readb  从 I/O 读取 8 位数据 ( 1 字节 ); re...

c++ 内存映射代码

  • 2017年08月18日 16:39
  • 712B
  • 下载

内存映射 C++实例

  • 2013年07月09日 09:33
  • 139KB
  • 下载

windows内存映射文件

原文地址:http://www.cnblogs.com/fangyukuan/archive/2010/09/09/1822216.html 内存映射文件 Windows提供了3种进行内存管理...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:内存映射的用法
举报原因:
原因补充:

(最多只允许输入30个字)