linux 内存文件映射的问题
mmap 映射一个文件到内存,我在写满这个内存的时候回写文件,现在想清楚这个文件的所有内容,应该怎么做?
还有就是创建内存文件映射后,我回写的文件都是文本内容,我回写完毕关闭后,打开这个文件发现如果没写满 这个文件后面会跟上一段\0\0啥的乱起把着的数据,怎么处理?
if (-1 == (hFile = open(lpszFileName,O_RDWR | O_CREAT,S_IRUSR | S_IWUSR)))
{
return FALSE;
}
int nPageSize = nSize % 4;
nSize -= nPageSize;
if (-1 == lseek(hFile,nSize,SEEK_SET))
{
return FALSE;
}
if (-1 == write(hFile,_T(""),1)) //这里 ,删除后没法使用,没法把内容回写到文件
{
return FALSE;
}
ptszMemAddr = (TCHAR *)mmap(NULL,nSize,PROT_READ | PROT_WRITE,MAP_SHARED,hFile,0);
if (NULL == ptszMemAddr)
{
return FALSE;
}