Я гуглил это в течение последних двух недель, и я не получил никакого ответа. Вот что у меня есть:
Родительский процесс, который создает структуру myStruct
, которая в основном представляет собой связанный список с использованием указателей (если это серьезная проблема, я могу согласиться использовать вместо этого массив фиксированного размера).
Фиксированное число дочерних процессов, созданных с помощью fork()
, которым необходим доступ на чтение / запись к структуре (или массиву), созданному родителем.
Я не знаю, как это сделать, чтобы переменная myStruct
стала общей для процессов.
Я пытался решить проблему, используя такие функции SysV IPC, как shmget()
, shmat()
и т. Д., Чтобы распределить свою переменную в разделяемой памяти, но я не знаю, как работать с указателями пустой памяти для чтение / запись значений в myStruct.
В идеале я хотел бы иметь возможность использовать точечную нотацию (myStruct.node)->attribute = value
в каждом процессе без необходимости иметь дело с указателями, поскольку я не знаю, как моя структура организована в память.
Возможно ли это? Могут ли некоторые из вас помочь? Любая помощь очень ценится.
Дальнейшее примечание: я знаю, что использовать потоки, трубы, сокеты или подобные вещи было бы намного проще, но эта работа предназначена для академических целей, для которых мне нужно смоделировать наличие нескольких независимых процессов.