gpt4 book ai didi

c - string FILE stdio 兼容吗?

转载 作者:太空宇宙 更新时间:2023-11-04 04:38:41 25 4
gpt4 key购买 nike

在 stdio/string/stdlib 中有类似字符串文件的东西吗?我的意思是一种打开 FILE 流的特殊方法,它实际上将写入定向到内部缓冲区并负责缓冲区分配/重新分配?在 fclose 之后,文本应该以 null 终止的 char[] 或类似形式可用。

我需要连接到接收 FILE* 作为参数并写入其中的遗留代码,我希望避免写入临时磁盘文件。

其他形式的存储可以代替 char[](例如字符串),但必须有一个 FILE* 指针。

我正在寻找创建临时磁盘文件的替代方法。

最佳答案

fmemopen & open_memstreamPOSIX 2008 标准,可能受到 GNU libc 的启发 string streams , 并给出内存中的 FILE* 流。

另见 this question和你的很相似,还有that answer .

顺便说一句,很多操作系统have基于 RAM 或基于虚拟内存的文件系统(à la tmpfs )

如果您在 C++11 中编码(不是在 C 中),也许对于一些早期的 C++ 标准,您当然可以使用 std::stringstream -s

所以你可以在 Posix 上使用 open_memstream,还有一些 other Windows 上的解决方案(仅使用 #if _POSIX_C_SOURCE > 200809Lfeature_test_macros(7) ...)

C 标准不提供(还)任何内存中的 FILE 流,所以如果您需要它们,您必须编码或使用平台特定的 功能。

关于c - string FILE stdio 兼容吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28590319/

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