gpt4 book ai didi

c++ - 如何将字符串转换为打开以供读取的 FILE*

转载 作者:行者123 更新时间:2023-11-30 19:57:16 24 4
gpt4 key购买 nike

我正在编写一个 C++ 应用程序,它需要调用一个需要 FILE* 的库函数。打开阅读。我没有该功能的代码 - 对我来说它是一个黑匣子。我需要传递给函数的数据位于 char* 的内存中已知大小的缓冲区。理想情况下,我需要将缓冲区包装在 FILE* 中结构并传递它,但我需要通常在 FILE* 上工作的所有 stdio 函数处理我传入的内容,因为我不知道它调用了哪个函数 - 绝对 fread ,可能fseek也。该代码对性能相当敏感,因此我想避免将缓冲区写入磁盘,以便我可以创建 FILE*来自fopen 。有没有办法制作FILE*这将允许我在内存中的缓冲区?类似 stringstream在c++中?我的代码需要能够在 Windows 和 Linux 上运行。

我见过很多问题,人们试图通过 FILE* 来写内存。我的情况恰恰相反 - 我需要将现有缓冲区呈现为可读 FILE* .

非常感谢!

附注是的,Using a C string like a FILE*正是我要问的,不知何故我找不到它......

不过,如果您可以建议 Windows 上的解决方案,那将非常有帮助!

最佳答案

Posix 需要 fmemopen()函数,它完全符合您的要求。

Glibc certainly has it .

不能确定 Windows 的情况,但看来 MinGW 包含 newlib,它也实现了它。如果有帮助的话。

关于c++ - 如何将字符串转换为打开以供读取的 FILE*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49268228/

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