c语言fread()返回总是0?

Uint16 BlockWrFlash[256]={0};
fptr = fopen("codec.bin", "rb"); //加载数据
ReturnLenth=256;
kk=0;
while(ReturnLenth==256) //加载代码
{
ReturnLenth=fread(BlockWrFlash,sizeof(short),256,fptr);
DeviceAddr=kk*0x100;
FlashWr(DeviceAddr);
delay();
kk++;
}
现在的问题出现在fread返回总是0,正常的是256才对,不知道哪里有问题了,请大大们指教!谢谢!

红糖糍粑
浏览 1281回答 3
3回答

拉风的咖菲猫

你没有检查fopen不成功的情况,即fptr = fopen("codec.bin", "rb"); //加载数据后加if(fptr ==NULL){printf("file can't open!\n");return ;}可能是打开文件错误造成的。

慕村225694

"codec.bin"的路径关系对么?默认走当前路径,但是根据编译环境,可能会有不同路径效果。尝试一下用绝对路径。fseek设置一下读写位置到文件头。如果还不行,你就把打开方式变成可读写的二进制,然后一次读一个字节。
打开App,查看更多内容
随时随地看视频慕课网APP