`
luliangok
  • 浏览: 778719 次
文章分类
社区版块
存档分类
最新评论

质疑fread()的块方式读取

 
阅读更多

size_t fread( void *buffer, size_t itemsize, size_t count, FILE *stream );

以前调用fread()总是用字符方式, 即itemsize = 1.

现在偶尔应用了一下块方式, 将 itemsize 设为一个结构的大小, 而 count = 1.

正常情况下是没问题.

如果文件大小不足一个结构, 返回应该是0. 可是文件增长后, 以后读取的所有结构都错了!

因为第一次读取后文件指针就不在结构的边界上了.

看来还是要用字符方式读取.


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics