uselib - seleziona una libreria condivisa
#include <unistd.h>
[[deprecated]] int uselib(const char *library);
La chiamata di sistema
uselib() serve per caricare una libreria condivisa
che sarà usata dal processo chiamante. Viene dato un nome di percorso.
L'indirizzo da cui caricare si trova nella stessa libreria. La libreria
può avere qualunque formato binario riconosciuto.
In caso di successo restituisce zero. In caso di errore restituisce -1, e
errno verrà impostato per indicare l'errore
In aggiunta a tutti i codici di errore 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(7)).
- ENFILE
- E' stato raggiunto il limite per l'intero 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.
uselib() è specifico di Linux, e non deve essere usato in
programmi pensati per essere portabili.
This obsolete system call is not supported by glibc. No declaration is provided
in glibc headers, but, through a quirk of history, glibc before glibc 2.23 did
export an ABI for this system call. Therefore, in order to employ this system
call, it was sufficient to manually declare the interface in your code;
alternatively, you could invoke the system call using
syscall(2).
Nelle vecchie versioni (prima di glibc 2.0),
uselib() fu usata per
caricare le librerie condivise con nomi trovati in un array di nomi nel
binario.
A partire da Linux 3.15, questa chiamata di sistema è disponibile solo
quando il kernel è configurato con l'opzione
CONFIG_USELIB.
ar(1),
gcc(1),
ld(1),
ldd(1),
mmap(2),
open(2),
dlopen(3),
capabilities(7),
ld.so(8)
La traduzione italiana di questa pagina di manuale è stata creata da
Goffredo Baroncelli <
[email protected]>, Giulio Daprelà
<
[email protected]> e Marco Curreli <
[email protected]>
Questa traduzione è documentazione libera; leggere la
GNU
General Public License Versione 3 o successiva per le condizioni di
copyright. Non ci assumiamo alcuna responsabilità.
Per segnalare errori nella traduzione di questa pagina di manuale inviare un
messaggio a
[email protected]