Один процесс не может напрямую изменять память другого. Обычно вы создаете канал или другой механизм, который может пересекать границы процесса. Открытые дескрипторы будут унаследованы дочерним процессом, если вы используете fork (). Затем он может отправлять сообщения родительскому элементу с указанием изменить структуры данных в соответствии с требованиями.
Форма сообщений может быть сложной частью этого дизайна. Вы можете:
- Разработка протокола, который содержит значения и инструкции о том, что с ними делать.
- Используйте существующий инструмент маршалинга, такой как Google Protocol Buffers.
- Использовать удаленные вызовы процедур с одним из существующих механизмов RPC (т.е. SUN или ONC-RPC).
Вы также можете использовать схему разделяемой памяти, настроенную вручную, которая позволит обоим процессам получать доступ к общей памяти. Родительский процесс выделит хранилище для своих структур данных в этой общей памяти. Дочерний процесс отобразит это также в свое пространство и получит доступ к этим структурам. Вам нужно будет использовать какой-то механизм синхронизации в зависимости от того, как вы используете данные.