В моей программе 2 процесса: ведущий и ведомый.Ведущий связывается с ведомым через буфер общей памяти.Мастер создает разделяемую память с помощью
shm_open("shared_buff", O_CREAT | O_RDWR, 0666);
Ведомый использует ту же самую строку shm_open, чтобы получить свой указатель в бафф.Хозяин может убить подчиненное устройство, прежде чем у него будет возможность корректно завершить работу и вызвать shm_unlink () в буфере общей памяти.Мне интересно, может ли это вызвать утечку памяти, и если да, то есть ли что-то, что я могу с этим поделать?
В настоящее время я сталкиваюсь с ошибкой, когда после того, как мастер убил ведомого и попытался перезапустить его,ведомый больше не имеет доступа к буферу.Я не уверен на 100%, является ли это причиной проблемы, но кажется вероятным.Чтобы было ясно, все работает нормально на первом проходе, только во второй раз, когда ведомое устройство запускается, возникают проблемы.Насколько я могу судить, ошибок или следов стека не выводится.
Другое решение было бы для недавно связанного общего объекта mem (на конце ведомых) просто заменил бы старое распределение.возможно ли что-то подобное?