gpt4 book ai didi

c - Windows 上的共享内存,可以由单独的进程访问(读取和写入)

转载 作者:可可西里 更新时间:2023-11-01 10:02:03 26 4
gpt4 key购买 nike

我可以在 Windows 上使用共享内存,以便拥有一个可供多个独立进程使用的公共(public)内存区域吗?

上下文:

将 unix 应用程序移植到 Windows,它具有: - 创建多个共享内存区域的“设置”过程。 - 一组其他进程(在设置过程已经完成时运行) 读取(偶尔写入)已准备好的内存区域 设置过程


我已经尝试过 CreateFileMapping(INVALID_HANDLE_VALUE, ...)/OpenFileMapping 但共享内存似乎在创建进程退出后立即被释放。

我应该创建真实的(即在文件系统上的)文件并打开这些文件而不是使用 INVALID_HANDLE_VALUE 吗?

最佳答案

Windows 不支持创建一个全局文件映射对象,该对象在没有任何进程持有它的句柄的情况下存在,这解释了为什么您对匿名部分使用 CreateFileMapping 不起作用。

但是,正如您所建议的,您可以在磁盘上创建一个实际文件,并根据需要使用 CreateFileMapping 映射该文件,进程可以共享由磁盘文件支持的内存。您的流程只需要知道在哪里可以找到支持文件。

关于c - Windows 上的共享内存,可以由单独的进程访问(读取和写入),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1366914/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com