C – 在内存中创build文件

我在这里用简单的C写小程序。 我需要的是直接在内存中创build一个文件(不是写在硬盘上)目前我可以使用fopen("filename.txt,"wb")写入文件。

我知道在linux中可以使用fmemopen() 。 有没有类似的解决scheme为win32?

我不会使用fopen,因为这会创建一个文件。

要在内存中创建文件,您需要创建文件并以某种您认为合适的方式进行存储。

您将需要创建一些数据类型的数组。 我会使用char *,但是你可以使用任何你想要编码的信息。 然后,您可以通过向该阵列添加信息来读取和写入文件。

你可以用MapViewOfFile来实现某些功能。 你应该使用的Win32 API是:

的CreateFile(…)

的CreateFileMapping(……)

MapViewOfFile(…)

一旦完成,不要忘记取消映射并关闭文件映射。

Windows中并不支持这种功能。 但是,您可以重写高级stdio函数来访问内存缓冲区而不是文件,或者只是实现类似stdio的函数。 或者你可以实现一个RAM磁盘 ,但是安装RAM磁盘驱动器本身可能不符合你的“不写入磁盘”规则。