我正在编写一个C++应用程序,它需要调用一个期望FILE*打开读取的库函数.我没有该功能的代码 - 对我来说这是一个黑盒子.我需要传递给函数的数据在char*已知大小的缓冲区的内存中.理想情况下,我需要将一个缓冲区包装在一个FILE*结构中并传入它,但我需要所有通常FILE*用于工作的stdio函数来处理我传入的内容,因为我不知道它调用了哪个函数 -当然fread,也可能fseek.代码是一个对性能敏感的代码,所以我想避免将缓冲区写入磁盘,以便我可以FILE*通过它创建一个fopen.有没有办法FILE*让我的内存中的缓冲区允许?像stringstreamc ++中的东西?我的代码需要能够在Windows和Linux上运行.
我已经看到很多人试图写入FILE*内存的问题.我的情况恰恰相反 - 我需要将现有缓冲区呈现为可读的 FILE*.
非常感谢!
PS是的,使用像FILE*这样的C字符串正是我所要求的,不知道我以前找不到它......
不过,如果您可以在Windows上建议解决方案,那将非常有用!