uselib
seleziona una shared library
- Provided by: manpages-it (Version: 2.80-5)
- Source: man-pages-it
- Report a bug
seleziona una shared library
#include <unistd.h>
int uselib(const char *library);
uselib seleziona la libreria condivisa che sarà usata dal processo. Viene dato un pathname. L'indirizzo da cui caricare si trova nella stessa libreria. La libreria può avee qualunque formato binario riconosciuto.
In caso di esito positivo viene restituito zero, altrimenti -1 e errno contine il codice dell'errore verificatosi.
In aggiunta a tutti i codici di erore restituiti da open(2) e mmap(2), possono essere restituiti anche i seguenti:
uselib() è specifico di Linux, e non deve essere usato in programmi pensati per essere portabili.
uselib() fu usata dai primi codici di avvio di libc per caricare le librerie condivise con nomi trovati in un array di nomi nel binario.
A partire da libc 4.3.2, il codice di avvio prova a anteporre a questi nomi "/usr/lib", "/lib" e "" prima di rinunciare. In libc 4.3.4 e successive questi nomi sono cercati nelle directory trovate in LD_LIBRARY_PATH, e, se non si trovano lì, vengono provati i prefissi "/usr/lib", "/lib" and "/".
A partire da libc 4.4.4 viene caricata solo la libreria "/lib/ld.so", così che la libreria dinamica possa caricare le restanti librerie necessarie (usando di nuovo questa chiamata). Questo è anche lo stato dell'arte in libc5.
glibc2 non usa questa chiamata.
ar(1), gcc(1), ld(1), ldd(1), mmap(2), open(2), dlopen(3), capability(7), ld.so(8)