Совместное использование глобальной переменной между разветвленными процессами - PullRequest
0 голосов
/ 04 февраля 2012

У меня есть глобальная переменная X. Затем я разветвляюсь и изменяю X из дочернего элемента.Я хочу, чтобы эти изменения отображались в родителе, но я не хочу, чтобы родитель ждал ребенка.

Как я могу это сделать?

Ответы [ 3 ]

5 голосов
/ 04 февраля 2012

Вам необходимо поместить переменную в общую память.Есть много способов создать общую память.Я бы, вероятно, просто использовал mmap, но вы также можете проверить shmget или shm_open.

1 голос
/ 04 февраля 2012

Вы не можете.

После разветвления это два отдельных процесса. Вам придется использовать некоторые IPC .

1 голос
/ 04 февраля 2012

Когда вы создаете новый процесс, который является отдельной копией адресного пространства.Он может видеть только изменения, сделанные перед форком.

Если вам нужна общая память для связи между процессами, вы должны создать ее явно.

...