gpt4 book ai didi

C++ FILE 不写入磁盘

转载 作者:可可西里 更新时间:2023-11-01 03:06:05 25 4
gpt4 key购买 nike

我正在使用一个库,该库具有相当多的写入 FILE 的函数,但似乎没有一个函数可以方便地将相同数据转储到内存中的对象。有什么方法可以创建一个 FILE 对象(或覆盖它)将数据存储在内存中而不是写入磁盘——我想避免打开/写入/读取的性能影响一遍又一遍的文件。

更新:根据 Rob 的建议,尝试 stringstream:

ss.put(c);

std::string myval = ss.str();

printf("Value: %s\n after writing: %i length %lu\n",myval.c_str(),c, myval.length());

但是,现在尝试从字符串流中获取数据(二进制)让我陷入困境——如何获取我一直在添加的二进制数据?

最佳答案

除了已经提到的 GNU 的 fmemopen(),它在 POSIX 中被称为 open_memstream ,类似的解决方案可以结合 mmap()(使用 MAP_ANONYMOUS)或任何其他将文件描述符返回到内存块的操作系统特定函数,以及 fdopen().

编辑:那是错误的,mmap 不创建文件描述符。

关于C++ FILE 不写入磁盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5860401/

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