Se il mio file eseguibile chiama dlopen
per caricare una libreria ma trascura di chiamare dlclose
, la libreria rimarrà caricata fino alla chiusura del processo e il sistema operativo lo costringe a scaricare.C'è una perdita di carico se dlopen() viene chiamato da una libreria dlopen?
Se carico a.so
che carica b.so
, quindi chiamare dlclose
su a.so
, non il sistema operativo scaricare b.so
come bene?
In che modo si confronta con uno scenario simile utilizzando l'equivalente Microsoft, LoadLibraryEx
?
Grazie. Sai dove trovare questa informazione nella documentazione di 'dl *'? Ho letto http://linux.die.net/man/3/dlopen ma non l'ho trovato – Kietz
Per lo più faccio programmazione Windows, non Linux/Unix, ma non penso che questo debba essere documentato ufficialmente. Tutto ciò che un modulo può fare è essere responsabile per sé stesso delle librerie di caricamento. Che cosa succede se la libreria è di terze parti, dove la terza parte può caricare 1,2,3, o nessun modulo, in base ad alcune impostazioni, ambiente in esecuzione, ecc. La tua applicazione terrà traccia di questa terza modulo party e cosa fa internamente? Ovviamente no. – PaulMcKenzie
Quindi questo è sicuramente il caso di "LoadLibrary *" e "GetModuleHandle *"? Potresti indicarmi la documentazione per quelli? – Kietz