如何在多个进程内共享访问内存映像文件

muxuchen   2007-7-19 14:16 楼主
我在一个进程里创建了内存映像文件:
HANDLE hFile = CreateFile(L"a.txt",GENERIC_WRITE|GENERIC_READ,0,NULL
,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if(hFile == INVALID_HANDLE_VALUE)
{
//printf("File could not be opened.");
         MessageBox(L"File could not be opened.");
return;
}

DWORD dwFileSize = GetFileSize(hFile,NULL);

HANDLE hFileMap = CreateFileMapping(hFile,NULL,PAGE_READWRITE,0,
dwFileSize+sizeof(char),L"SHARE");
这里要以读写的方式打开文件,然后在另外一个进程要对这里创建的内存映像进行访问(可能包括会有写),那么另外一个进程里的代码要怎么写呢?我直接写成一样的或者打开方式用只读都会打不开文件,因为访问冲突。哪位高手指点一下哦!

回复评论 (2)

上面的问题解决了,但又出现了新的问题——如何向内存映像文件中增加数据和删除数据呢?就是文件可能会变大或者变小,如何操作呢?
点赞  2007-7-19 16:08
用springf(文件地址指针,要写入的数据)就可以了,然后释放内存的时候保存。
点赞  2007-7-20 15:04
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复