Данные между процессами

#multithreading #process

#многопоточность #процесс

Вопрос:

Что, если код выполняется в своем собственном процессе и включает в себя файл .h или corelogic.c, который является частью другого процесса.

У меня есть один процесс, выполняющий кучу кода, который включает заголовок модуля, который выполняется в другом процессе.

Какой код в процессе 1 вызывает код в процессе 2 и устанавливает переменные, которые присутствуют в коде, который находится в process2?

Есть ли у процесса 1 копия всего кода, подключенного через файл .h, который он включает из модулей процесса 2?

Итак, существует 2 копии переменных, по 1 для каждого процесса? Неужели невозможно установить переменные процесса 2 из процесса 1?

Ответ №1:

Два процесса в вашем примере имеют свою собственную копию каждой точки данных. Чтобы ваши два процесса использовали одну и ту же память (изменение значения в одном процессе автоматически изменяет значение во втором процессе), вам необходимо использовать общую память. В Linux вы можете использовать shmget.

Комментарии:

1. Я думаю, что мы используем общую память. Я проверю shmget, спасибо.