J'ai rencontré le problème suivant sous Linux. J'ai une application qui utilise une bibliothèque externe (l'application n'est pas liée avec). J'ouvre la bibliothèque par dlopen
et utilise des symboles. Le problème s'est produit lorsque j'ai essayé de décharger la bibliothèque par dlclose
, je vois toujours la bibliothèque chargée dans /proc/.../maps
.La bibliothèque partagée ne peut pas être fermée par dlclose
Plus sur une tentative d'utilisation suivante:
...
while(dlclose(module) == 0);
...
conduit à boucle infinie et la bibliothèque est encore chargée.
Y at-il un moyen de vérifier/trouver qui détient la bibliothèque?
Vous ne devriez pas trop déranger. En fait, ne pas faire de 'dlclose' fonctionne très bien, même avec des milliers d'objets partagés' dlopen'-ed. –