读取小于文件大小C的特定大小的流

问题描述

假设我有一个文件file,它是32.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;
}

gzread行位于ks_getuntil内部,而ksbuffer所在位置和file所在位置(和{已经为整个程序设置了{1}}。不在while循环中对其进行操作。

这似乎使buffer_sizegzread的大块中移动是可行的,但不确定并认为要检查。

解决方法

您尝试过吗?是的,它就是这样做的。 gzread()返回读取的内容。这将是请求的数量,如果已达到文件末尾,则将更少。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...