【发布时间】:2016-07-17 21:53:18
【问题描述】:
我正在尝试在 C++ 中创建一些内存并在 Java 中访问它。
在 C++ 方面,我知道我可以使用 shm_open 和 mmap 来获得
内存区域并将一些数据写入其中。但是,怎么打开
Java端的内存映射文件?有人建议使用MappedByteBuffer
但是如何访问提供给shm_open 的“路径”(它只存在于内存中,因此无法从中初始化File)。我可以在不使用 JNI 的情况下做到这一点吗?
【问题讨论】:
-
您提到的功能似乎表明了Linux环境。是这样吗?还是您需要更便携的解决方案?无论如何,我建议使用更完善的进程间通信。为什么不只使用套接字。
-
@Cheersandhth.-Alf 是的,它是 linux 环境。不一定要便携。出于性能原因(以避免复制),我们希望使用共享内存。
-
@BevynQ 似乎您发布的链接无法解决我的问题。它也是基于 Windows 的。
标签: java c++ shared-memory mmap