好吧, 我有一个工作程序,可以在linux上读取外部虚拟内存。 这就是我想做的: 程序1被执行并在内存中具有特定的地址以与程序2通信。 我知道程序2正在和程序1进行读写操作 我对程序2的制作感到困惑,我有以下代码:
#include <iostream>
using namespace std;
int main()
{
int* i;
i = (int*)0x7ffABCDDCBA1;
cout << i << endl;
}
注意:
这只是一个测试代码,以查看它是否有效
program1会在程序2的pid处读取0x7ffABCDDCBA1, 它可以正常编译,但是执行时出现“分段错误”
注意:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
</dependency>
工作正常
答案 0 :(得分:3)
您正在访问一些随机的内存位置,该位置很可能不属于您的进程地址空间,因此会导致未定义的行为。
您应该在进程How to use shared memory in Linux之间使用共享内存。
其他技术很少,但是这种技术最常用于此目的。