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)