вопрос по созданию нового процесса через пару fork() + exec() здесь.
Есть ли способ запретить exec() вызывать функции fini() или _attribute__((destructor))?
Я наблюдаю, когда разветвленный процесс вызывает exec() — все функции fini() и _attribute__((destructor)) функции во всех загруженных общих библиотеках выполняются в разветвленном процессе перед преобразованием в новое приложение.
В большом (сотни общих библиотек) проекте , скажем, центр управления особняком «умный дом»,
некоторые из общих библиотек в глубине архитектуры принадлежат третьим лицам и не могут быть изменены.
Одна из общих библиотек — это модуль управления воротами, и он считает, что все ворота, которые он контролирует, должны быть закрыты после закрытия (
Код: Выделить всё
fini()Поэтому, когда я хочу породить крошечный процесс для цели MISC, ворота закрыты (опасность).
Есть ли разумный способ решить эту проблему при создании нового процесса?
Проверено на любом приложении C/C++ в Ubuntu 18/20
Подробнее здесь: https://stackoverflow.com/questions/791 ... destructor
Мобильная версия