我在一个进程里创建了内存映像文件:
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");
这里要以读写的方式打开文件,然后在另外一个进程要对这里创建的内存映像进行访问(可能包括会有写),那么另外一个进程里的代码要怎么写呢?我直接写成一样的或者打开方式用只读都会打不开文件,因为访问冲突。哪位高手指点一下哦!
上面的问题解决了,但又出现了新的问题——如何向内存映像文件中增加数据和删除数据呢?就是文件可能会变大或者变小,如何操作呢?
用springf(文件地址指针,要写入的数据)就可以了,然后释放内存的时候保存。