C - ветвление () и совместное использование памяти

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

Я предполагаю, что это использовало бы своего рода межпроцессное взаимодействие и имело бы одну переменную на одном обновляемом процессе.

Я сделал быстрый Google и IPC, и различные методы подходят, но я не знаю, который наиболее подходит для моей ситуации.

Таким образом, какая техника является лучшей и могла Вы предоставлять ссылке на учебное руководство новичков для него.

Спасибо.

13
задан Cheetah 21 April 2010 в 11:33
поделиться

2 ответа

Поскольку вы упоминаете об использовании fork (), я предполагаю, что вы живете в * nix-системе

From Unix.com

Основной способ обмена данными между процессами с использованием IPC UNIX:

(1) Общая память;

(2) Сокеты:

Существуют и другие IPC UNIX, включая

(3) очереди сообщений.

(4) семафоры;

(5) сигналы.

Лучше всего (для IPC) использовать сегментов общей памяти на основе вашего сообщения . Возможно, вам потребуется использовать семафоры , чтобы гарантировать, что операции с общей памятью являются атомарными.

Учебник по разветвлению и разделяемой памяти находится в сарае разработчика:

http://forums.devshed.com/c-programming-42/posix-semaphore-example-using-fork-and-shared-memory- 330419.html

еще одно более подробное описание использования многопоточности (если оно применимо для вашего приложения) можно найти здесь:

https://computing.llnl.gov/tutorials/pthreads/

16
ответ дан 1 December 2019 в 22:22
поделиться

Если вам нужно совместно использовать память, возможно, использование потоков вместо процессов было бы лучшим решением?

4
ответ дан 1 December 2019 в 22:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: