gpt4 book ai didi

c - 直接从 FILE 缓冲区读取

转载 作者:太空宇宙 更新时间:2023-11-04 11:14:52 24 4
gpt4 key购买 nike

我的应用程序的核心大致如下所示:

size_t bufsize;
char* buf1;
size_t r1;
FILE* f1=fopen("/path/to/file","rb");
...
do{
r1=fread(buf1, 1, bufsize, f1);
processChunk(buf1,r1);
} while (!feof(f1));
...

(实际上,我有多个 FILE* 和多个 bufN。)现在,我听说 FILE 相当准备好自行管理一个缓冲区(称为 “流缓冲区”),并且这种行为似乎很容易调整:https://www.gnu.org/software/libc/manual/html_mono/libc.html#Controlling-Buffering .

我如何重构上面的代码片段以放弃 buf1 缓冲区并改用 f1 的内部流缓冲区(同时将其设置为 bufsize)?

最佳答案

如果您不想要不透明的缓冲 I/O,请不要使用 FILE *。使用较低级别的 API,让您自己管理所有应用程序端缓冲,例如普通 POSIX open()read()

关于c - 直接从 FILE 缓冲区读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21527079/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com