gpt4 book ai didi

zig - 如何创建与文件大小相同的缓冲区?

转载 作者:行者123 更新时间:2023-12-02 18:25:54 30 4
gpt4 key购买 nike

我想避免因为文件太大或足够小以至于缓冲区中有空白空间之类的事情而创 build 置大小的缓冲区。 ArenaAllocator 听起来很有前途,因为您可以根据需要分配更多空间。是否有“正确”的方法来执行此操作,即将作为命令行参数传递的 .json 文件加载到缓冲区中?

最佳答案

How can you create a buffer of the same size as a file?

您可以请求文件大小并分配相同数量的内存:

var file = try std.fs.cwd().openFile("file.txt", .{ open = true }));

const file_size = (try file.stat()).size;
var buffer = try allocator.alloc(u8, file_size);

然后你可以使用readNoEof读取文件:

try file.reader().readNoEof(buffer);

或者,您可以使用 FilereadToEndAlloc 函数:

const size_limit = std.math.maxInt(u32); // or any other suitable limit
var result = try file.readToEndAlloc(allocator, size_limit);

关于zig - 如何创建与文件大小相同的缓冲区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70189554/

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