[求助]CH375做Host读取文件,如何读取最后的一个扇区?

按照数据手册上的说明,先把mCmdParam.Locate.mSectorOffset置成0xffffffff, 然后用CH375FileLocate()将文件指针移到文件的最后, 如果最后一个扇区不满512字节,再将CH375vFileSize扩展成512的整数倍, 读出最后一个扇区的数据后,再把CH375vFileSize恢复为原来的大小。

问题出在,当文件长度正好是512的整数倍时,应该如何读最后一个扇区呢? 我把CH375vCurrentOffset设置成CH375vFileSize-0x200,但无论如何也读不出数据。 请问问题出在哪里?

如果文件长度正好是512的整数倍时,你先根据总长度计算一下总工有几个扇区,再将mCmdParam.Locate.mSectorOffset置为总扇区减1,用CH375FileLocate()跳到最后一个扇区的开头位子,最后进行读取不就行了。


实际的计算方法是在读取数据之前将文件长度+511/512;这样即使你的文件长度为512的整数倍也没有关系,这个估计和你的程序有点关系,你可以把那段程序帖出来看下


只有登录才能回复,可以选择微信账号登录