Wenn meine ausführbare Datei dlopen
aufruft, um eine Bibliothek zu laden, aber die Adresse dlclose
nicht aufruft, bleibt die Bibliothek geladen, bis der Prozess beendet wird und das Betriebssystem ihn zum Entladen zwingt.Gibt es ein Lade-Leck, wenn dlopen() von einer DLL-Bibliothek aufgerufen wird?
Wenn ich a.so
laden, die b.so
lädt, dann dlclose
rufen a.so
, wird das OS entladen b.so
auch?
Wie vergleicht dies mit einem ähnlichen Szenario mit dem Microsoft-Äquivalent LoadLibraryEx
?
Danke. Wissen Sie, wo diese Informationen in der Dokumentation zu 'dl *' zu finden sind? Ich lese http://linux.die.net/man/3/dlopen aber fand es nicht – Kietz
Ich mache hauptsächlich Windows-Programmierung, nicht Linux/Unix, aber ich denke nicht, dass dies offiziell dokumentiert werden muss. Alles, was ein Modul tun kann, ist für das Laden von Bibliotheken verantwortlich zu sein. Was ist, wenn es sich bei der Bibliothek um eine Drittanbieter-Bibliothek handelt, bei der die dritte Partei 1,2,3 oder keine Module laden kann, basierend auf bestimmten Einstellungen, der Umgebung usw.? Wird Ihre Anwendung diese dritte Party-Modul und was macht es intern? Natürlich nicht. – PaulMcKenzie
Das ist definitiv der Fall für 'LoadLibrary *' und 'GetModuleHandle *'? Könnten Sie mich auf die Dokumentation für diese verweisen? – Kietz