相当于MSVC的open_memstream

ext*_*ext 9 c posix visual-c++

我在我的库中使用open_memstream,但我想将此库移植到MSVC.似乎没有可用的等效功能,但有足够类似的功能吗?

什么open_memstream确实是需要一个char**目的地和大小,并返回你多写,数据被存储在一个动态分配的缓冲区(从焦炭**参数访问)的文件*.关闭FILE时,char**包含写入流的数据.这使得构建大型复杂字符串流变得简单.

虽然可以从memstream读取和搜索,但我只能写入它.

有没有办法在MSVC中打开类似的内存FILE流?此外,这是纯C,没有C++.

max*_*rmx 5

https://github.com/Snaipe/fmem是 open_memstream 的不同平台/版本特定等效项的包装器

它按顺序尝试以下实现:

  • open_memstream。
  • fopencookie,具有不断增长的动态缓冲区。
  • funopen,具有不断增长的动态缓冲区。
  • WinAPI 临时内存支持文件。

当没有其他方法可用时,fmem 会回退到 tmpfile()


Han*_*ant 4

Windows 上的类似函数是 CreateStreamOnHGlobal()。然而,它适用于 IStream COM 接口,它不是 FILE 的直接替代品。您可能想看一下 Cygwin 源代码,看看他们做了什么。