首页 > 解决方案 > 读取特定大小的流,小于文件大小 (C)

问题描述

假设我有一个file32.2 MB 的文件。然后我就这样读了

gzread(file, buffer, buffer_size);

(或者也许喜欢fread)。但是假设我已经设置buffer_size = 0x10000了大约 65 KB。

是不是每次我调用 gzread 时,它都会转到下一个 ~65kb 块?

我正在阅读一个带有这个while循环的项目:

while (ks_getuntil(ks, KS_SEP_LINE, &str, &dret) >= 0) { 
    stuff;
}

where gzreadline is inside ks_getuntil,ks是一个数据结构 where bufferis located 和 where fileis located(并且buffer_size已经为整个程序设置了)。它不在 while 循环中进行操作。

这使得它看起来有意义,gzread移动大块buffer_size,但不确定并考虑检查。

标签: czlibfread

解决方案


你有没有尝试过?是的,它就是这样做的。gzread()返回它读了多少。这将是请求的数量,或者如果已到达文件末尾则更少。


推荐阅读