文件大小:100bytes
int ret = SetFilePointer(hudt , 10000, NULL, FILE_BEGIN);
if (ret ==INVALID_SET_FILE_POINTER)
{
return 0;
}
返回值ret = 10000,明显越界。
此时调用WriteFile写入64字节数据后,文件大小变为10064byte。
ReadFile不会因为文件指针到达文件尾或者越过文件尾时而失败。
结论:SetFilePointer失败与文件指针越过文件尾无关,文件指针类似于内存指针,存在越界情况。需要通过文件大小与当前文件指针的位置来判断是否越过文件尾。