通过C中的两个并行应用程序访问相同的内存地址

时间:2011-05-15 19:47:37

标签: c memory-management

我有两个应用程序。

首次申请:

int a = 42;
int *P = &a;

第二次申请:

int b = *P;

有可能吗?否则,是否可以通过并行执行的两个应用程序(或多个)访问相同的内存?

1 个答案:

答案 0 :(得分:2)

对于两个独立的应用程序,即使是共享内存位也不仅仅涉及通过相同地址进行引用,当然在典型的桌面系统上。每个应用程序都会看到一个虚拟地址空间 - 而不是机器的物理地址空间。其他应用程序的内存通常甚至不可见 - 更不用说映射到同一地址了。

有(平台特定的)API可以让您访问另一个应用程序内存,主要针对调试器和类似工具,但也可以游戏“培训师”作弊使用 - 但这不是在应用程序之间进行通信的好方法。

在Windows上...

http://msdn.microsoft.com/en-us/library/ms680553%28VS.85%29.aspx