будет выгружена шаред либа. А есть какие-нибудь системные вызовы чтобы почистить память с выгружеными либами?
Для чего это может понадобиться?
У меня есть либа в которой есть инициализациях и деинициализация, и в ней нельзя вызывать инициализацию после деинициализация. У меня она остается висеть после dlclose, и валится ее инициализация при повторной загрузке.
а как открывается? в мане же для этого флаг описан RTLD_NODELETE (since glibc 2.2) Do not unload the shared object during dlclose(). Consequently, the object's static and global variables are not reinitialized if the object is reloaded with dlopen() at a later time.
Открываю с флагами RTLD_LAZY | RTLD_GLOBAL. А так сделать не получится там все сложно вот эта библиотека с инициализацией — зависимость двух бибилитоек которые через dlopen открываются
Обсуждают сегодня