共享内存申请和释放

文章目录


私有内存:独占物理页
共享内存:和别人共享物理页
在这里插入图片描述

CreateFileMapping(
		INVALID_HANDLE_VALUE,//为INVALID_HANDLE_VALUE时,不与文件关联
		NULL,				//安全描述符
		PAGE_READWRITE,		//保护模式(读写的权限)
		0,					//32位通常为空
		BUFSIZ,				//物理页的大小
		MapFileName			//指定文件映射对象的名字
);
g_lpBuff = (LPTSTR)MapViewOfFile(
		g_hMapFile,			//句柄
		FILE_MAP_ALL_ACCESS,//虚拟内存读写权限
		0,					//32位用不上
		0,					//从哪开始映射
		BUFSIZ				//物理页多大它就多大
		);
#include "stdafx.h"
#include "windows.h"

#define MapFileName "ZZZ" 
#define BUF_SIZE 0x1000
HANDLE g_hMapFile;
LPTSTR g_lpBuff;

int main(int argc, char* argv[])
{
	getchar();
	
	//内核对象,创建物理页
	g_hMapFile = CreateFileMapping(INVALID_HANDLE_VALUE,NULL,PAGE_READWRITE,0,BUFSIZ,MapFileName);
	
	//将物理页与线性地址进行映射,g_lpBuff就是虚拟内存地址
	g_lpBuff = (LPTSTR)MapViewOfFile(g_hMapFile,FILE_MAP_ALL_ACCESS,0,0,BUFSIZ);

	DWORD eror = GetLastError();
	*(PDWORD)g_lpBuff = 0x12345678;//往虚拟内存地址存值
	printf
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值