我在这里用简单的C写小程序。 我需要的是直接在内存中创build一个文件(不是写在硬盘上)目前我可以使用fopen("filename.txt,"wb")
写入文件。
我知道在linux中可以使用fmemopen()
。 有没有类似的解决scheme为win32?
我不会使用fopen,因为这会创建一个文件。
要在内存中创建文件,您需要创建文件并以某种您认为合适的方式进行存储。
您将需要创建一些数据类型的数组。 我会使用char *,但是你可以使用任何你想要编码的信息。 然后,您可以通过向该阵列添加信息来读取和写入文件。
你可以用MapViewOfFile来实现某些功能。 你应该使用的Win32 API是:
的CreateFile(…)
的CreateFileMapping(……)
MapViewOfFile(…)
一旦完成,不要忘记取消映射并关闭文件映射。
Windows中并不支持这种功能。 但是,您可以重写高级stdio函数来访问内存缓冲区而不是文件,或者只是实现类似stdio的函数。 或者你可以实现一个RAM磁盘 ,但是安装RAM磁盘驱动器本身可能不符合你的“不写入磁盘”规则。