创建内存文件

Creating a memory file

本文关键字:文件 内存 创建      更新时间:2023-10-16

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

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

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

CreateFile以文件路径作为参数。为了使其他进程能够打开它,该文件的位置必须映射到系统中存在的设备之一。

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

如果你只需要在进程之间共享内存,那么看看shmem的实现吧。