Доступ к одному и тому же адресу памяти через два параллельных приложения в C - PullRequest
2 голосов
/ 15 мая 2011

У меня есть два приложения.

Первое применение:

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

Второе применение:

int b = *P;

Возможно ли это сделать? Иначе, возможно ли получить доступ к одной и той же памяти через два приложения (или несколько), которые выполняются параллельно?

1 Ответ

2 голосов
/ 16 мая 2011

Для двух отдельных приложений даже бит общей памяти включает в себя больше, чем обращение по одному и тому же адресу, разумеется, в типичных настольных системах.Каждое приложение видит виртуальное адресное пространство, а не физическое адресное пространство машины.Память для других приложений обычно даже не видна - не говоря уже о сопоставлении с тем же адресом.

Существуют (специфичные для платформы) API, которые могут дать вам некоторый доступ к памяти других приложений, предназначенной в основном для отладчиков и подобныхинструменты, но также, например, используемые в играх "обучающие" читы - но это не очень хороший способ общения между приложениями.

В Windows ...

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...