创建内存文件

时间:2016-10-15 16:20:55

标签: c++ file winapi memory createfile

我想在内存中创建一个临时文件,没有写入磁盘,可以打开其他进程使用CreateFile进行读取,就好像它是普通文件一样。

这是可能的还是我必须把它写到磁盘上?

2 个答案:

答案 0 :(得分:2)

您要求的内容通常不能使用CreateFile()(除非您采用RAMdisk方法),但可以使用CreateFileMapping()MapViewOfFile()来完成。可以为映射对象分配一个名称,以便跨进程边界共享它,然后多个进程可以根据需要打开自己的视图。

答案 1 :(得分:0)

CreateFile将文件路径作为参数。对于能够打开它的其他进程,文件位置应映射到系统中现有的一个设备。

其中一个设备可以是RAM磁盘/设备,您可以在其中创建文件而无需将其写入物理磁盘(内存交换)。但这需要安装和激活这种(虚拟)设备。

如果您只需要在进程之间共享内存,那么请查看shmem implementation