C语言fread 读不完整,返回值比预计的少,但是文件大小是对的

我用fwrite写的一个文件,用fread读取,写完后文件大小是对的,但是fread只能读出一部分,(一共9k的int,只读出来100多个,fread的返回值也是100多)
以前用fread读几百k的数据都不会出错,请问大神们如何解决?

上代码。。。。。。。。。

应该是fwrite的时候没有将文件指针指向文件首地址。fseek()可以设置文件指针。