我在我的库中使用 open_memstream ,但我想将此库移植到MSVC。似乎没有可用的等效功能,但有足够类似的东西吗?
open_memstream 做的是它需要一个char **目的地和大小并返回你多次写入的FILE *,数据存储在一个动态分配的缓冲区中(可以从char **中访问)参数)。关闭FILE时,char **包含写入流的数据。这使得构建大型复杂字符串流变得简单。
虽然可以从memstream读取和搜索,但我只能写入它。
有没有办法在MSVC中打开类似的内存FILE流?此外,这是纯C,没有C ++。
答案 0 :(得分:2)
Windows上的类似功能是CreateStreamOnHGlobal()。然而,这适用于IStream COM接口,它不是FILE的替代品。您可能想看看Cygwin源代码,看看他们做了什么。
答案 1 :(得分:1)
https://github.com/Snaipe/fmem 是 open_memstream 的不同平台/版本特定等价物的包装器
它依次尝试以下实现:
当没有其他方法可用时,fmem 回退到 tmpfile()