c - 读取特定大小的流,小于文件大小 (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;
}
where gzread
line is inside ks_getuntil
,ks
是一个数据结构 where buffer
is located 和 where file
is located(并且buffer_size
已经为整个程序设置了)。它不在 while 循环中进行操作。
这使得它看起来有意义,gzread
移动大块buffer_size
,但不确定并考虑检查。
解决方案
你有没有尝试过?是的,它就是这样做的。gzread()
返回它读了多少。这将是请求的数量,或者如果已到达文件末尾则更少。
推荐阅读
- git - 如何关闭 git 输出中的帮助提示?
- c++ - 将流转换为布尔 - 如何在 getline() 中完成
- javascript - console.log 消息被截断
- python - 在 Docker 容器中运行时,Subprocess.Popen 给出“没有这样的文件”
- angular - 是否可以在 Angular 的 innerHTML 中插入变量?
- javascript - 无法构建 react-native iOS 构建。未找到“分析/SEGAnalytics.h”文件
- javascript - 单元测试控制器使用 Jest、NodeJS
- c# - 如何在 .NET Core 中模拟/存根 HttpRequestMessage?
- html - 为什么字体粗细属性 (CSS) 在某些元素中不起作用?
- python - 从锚点中提取href属性url