DWORD bytes(0);
SECURITY_ATTRIBUTES sa = {0};
sa.nLength = sizeof(sa);
HANDLE hFile = CreateFile(
lpFilePath,
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE,
&sa, CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL, NULL);
if(hFile != INVALID_HANDLE_VALUE)
{
WriteFile(hFile, pData, lDataSize * lDataNum, &bytes, NULL);
CloseHandle(hFile);
return TRUE;
}
DWORD lRet(0), bytes(0);
SECURITY_ATTRIBUTES sa = {0};
sa.nLength = sizeof(sa);
HANDLE hFile = CreateFile(
lpFilePath,
GENERIC_READ,
FILE_SHARE_READ | FILE_SHARE_WRITE,
&sa, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, NULL);
if(hFile != INVALID_HANDLE_VALUE)
{
lRet = GetFileSize(hFile, NULL);
if(lRet >= lDataSize
&& ReadFile(hFile, &pData, lRet, &bytes, NULL))
{//至少有一个数据,且预留一个空间作为最新数据存放地址(无论最新数据是否存在)
lRet /= lDataSize;
}
else
{
lRet = 0;
}
CloseHandle(hFile);
}
转载于:https://blog.51cto.com/bagger/1333656