质疑fread()的块方式读取

标签: streambufferfile
1154人阅读 评论(0) 收藏 举报
分类:

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

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

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

正常情况下是没问题.

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

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

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


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1053340次
    • 积分:14981
    • 等级:
    • 排名:第752名
    • 原创:375篇
    • 转载:49篇
    • 译文:19篇
    • 评论:394条
    文章分类
    文章存档
    最新评论