内存映射文件咋比较字符串啊?
以下是查到的内存映射代码
1:如何向文件尾append一行数据
2:如何查最后一行有没有某字符串啊 比如有没有字符“2379”
请指教 谢谢先
HANDLE hFile = CreateFile("d:\\signal.txt",GENERIC_READ | GENERIC_WRITE,FILE_SHARE_READ | FILE_SHARE_WRITE,NULL,OPEN_EXISTING,TRIBUTE_NORMAL,NULL);
DWORD h;
DWORD l = GetFileSize(hFile, &h);
HANDLE hFilemap = CreateFileMapping(hFile,NULL,PAGE_READWRITE,0,100,NULL);
LPVOID pVoid = MapViewOfFile(hFilemap, FILE_MAP_ALL_ACCESS, 0, 0, 0);
char *Buf = (char*)pVoid;
Buf[0] = 'G';
}
UnmapViewOfFile(pVoid);
CloseHandle(hFileMap);
// Remove trailing zero character added earlier.
SetFilePointer(hFile, h,l, NULL, FILE_BEGIN);
CloseHandle(hFile);
[解决办法]
- C/C++ code
// 内存匹配函数memfindchar *memfind(const char *buf, const char *tofind, size_t len){ size_t findlen = strlen(tofind); if (findlen > len) { return((char*)NULL); } if (len < 1) { return((char*)buf); } { const char *bufend = &buf[len - findlen + 1]; const char *c = buf; for (; c < bufend; c++) { if (*c == *tofind) { // first letter matches if (!memcmp(c + 1, tofind + 1, findlen - 1)) { // found return((char*)c); } } } } return((char*)NULL);}
[解决办法]
你是问字符串查找?