Provided by: manpages-it_2.80-3_all bug

NOME

       uselib - seleziona una shared library

SINTASSI

       #include <unistd.h>

       int uselib(const char *library);

DESCRIZIONE

       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.

VALORI RESTITUITI

       In  caso  di esito positivo viene restituito zero, altrimenti -1 e errno contine il codice
       dell'errore verificatosi.

ERRORI

       In aggiunta a tutti i codici di erore restituiti da  open(2)  e  mmap(2),  possono  essere
       restituiti anche i seguenti:

       EACCES La  libreria  specificata  da library non ha permessi in lettura o esecuzione, o il
              chiamante non ha permessi di ricerca per una delle directory nel percorso.  (Vedere
              anche path_resolution(2).)

       ENFILE E' stato raggiunto il limite di sistema sul numero totale di file aperti.

       ENOEXEC
              Il  file  specificato da library non è un eseguibile o un tipo conosciuto, es., non
              ha i magic number corretti.

CONFORME A

       uselib() è specifico di Linux, e non deve essere usato in  programmi  pensati  per  essere
       portabili.

NOTE

       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.

VEDERE ANCHE

       ar(1), gcc(1), ld(1), ldd(1), mmap(2), open(2), dlopen(3), capability(7), ld.so(8)