Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java和C++; 我试图在C++中创建一些内存,并用java访问它。 在C++方面,我知道我可以使用 SmithOntOpen和 MMAP>代码>来获得 内存区域,并将一些数据写入其中。但是,我怎样才能打开门呢 Java端的内存映射文件?有人建议使用MappedByteBuffer 但是它如何访问提供给shm_open的“路径”(它只存在于内存中,因此无法从中初始化文件)。我可以不使用JNI来执行此操作吗?_Java_C++_Shared Memory_Mmap - Fatal编程技术网

Java和C++; 我试图在C++中创建一些内存,并用java访问它。 在C++方面,我知道我可以使用 SmithOntOpen和 MMAP>代码>来获得 内存区域,并将一些数据写入其中。但是,我怎样才能打开门呢 Java端的内存映射文件?有人建议使用MappedByteBuffer 但是它如何访问提供给shm_open的“路径”(它只存在于内存中,因此无法从中初始化文件)。我可以不使用JNI来执行此操作吗?

Java和C++; 我试图在C++中创建一些内存,并用java访问它。 在C++方面,我知道我可以使用 SmithOntOpen和 MMAP>代码>来获得 内存区域,并将一些数据写入其中。但是,我怎样才能打开门呢 Java端的内存映射文件?有人建议使用MappedByteBuffer 但是它如何访问提供给shm_open的“路径”(它只存在于内存中,因此无法从中初始化文件)。我可以不使用JNI来执行此操作吗?,java,c++,shared-memory,mmap,Java,C++,Shared Memory,Mmap,在Linux环境中,共享内存具有特殊的内存段: /dev/shm shm_open中提供的名称(例如“elo320”)用于创建文件 /dev/shm/elo320 此路径可在Java中使用。您提到的函数似乎表示Linux环境。是这样吗?还是您需要更便携的解决方案?无论如何,我建议使用更完善的进程间通信。为什么不直接使用sockets.mably duplicate@chearsandhth.-Alf是的,这是linux环境。不必是便携式的。出于性能原因,我们希望使用共享内存(以避免复制)。@Be

在Linux环境中,共享内存具有特殊的内存段:

/dev/shm

shm_open中提供的名称(例如“elo320”)用于创建文件

/dev/shm/elo320


此路径可在Java中使用。

您提到的函数似乎表示Linux环境。是这样吗?还是您需要更便携的解决方案?无论如何,我建议使用更完善的进程间通信。为什么不直接使用sockets.mably duplicate@chearsandhth.-Alf是的,这是linux环境。不必是便携式的。出于性能原因,我们希望使用共享内存(以避免复制)。@BevynQ您发布的链接似乎无法解决我的问题。它也是基于windows的。