我想在内存中创建一个临时文件,没有写入磁盘,可以打开其他进程使用CreateFile
进行读取,就好像它是普通文件一样。
这是可能的还是我必须把它写到磁盘上?
答案 0 :(得分:2)
您要求的内容通常不能使用CreateFile()
(除非您采用RAMdisk方法),但可以使用CreateFileMapping()
和MapViewOfFile()
来完成。可以为映射对象分配一个名称,以便跨进程边界共享它,然后多个进程可以根据需要打开自己的视图。
答案 1 :(得分:0)
CreateFile将文件路径作为参数。对于能够打开它的其他进程,文件位置应映射到系统中现有的一个设备。
其中一个设备可以是RAM磁盘/设备,您可以在其中创建文件而无需将其写入物理磁盘(内存交换)。但这需要安装和激活这种(虚拟)设备。
如果您只需要在进程之间共享内存,那么请查看shmem implementation。