dlopen
-
Hallo,
ich habe zwei Fragen zu dlopen
1.) Nichts ist geladen. Ich prüfe jetzt mit dlopen den Status einer Library. Dazu verwende ich das RTLD_NOLOAD Flag. Falls der Rückgabewert NULL ist, dann lade ich die Library.
Wird jetzt nicht NULL zurück gegeben, dann ist die Lib. bereits geladen und breche den Ladevorgang ab. Muss ich jetzt noch ein dlclose ausführen? (Um evtl. einen inneren Zähler zu dekrementieren?2.) Ist dlopen, dlclose, dlsym Thread-Safe? (MultiThreading)
Danke, Thomas
-
Wird jetzt nicht NULL zurück gegeben, dann ist die Lib. bereits geladen und breche den Ladevorgang ab. Muss ich jetzt noch ein dlclose ausführen? (Um evtl. einen inneren Zähler zu dekrementieren?
Ja, laut Manpage wird über Referenzzähler gearbeitet. Wenn dlopen also nicht-NULL zurück gibt, dann wird der Referenzzähler erhöht.
2.) Ist dlopen, dlclose, dlsym Thread-Safe? (MultiThreading)
Ich würde nicht davon ausgehen. Aber konnte bisher auch nichts konkretes finden.