uselib(2) System Calls Manual uselib(2)

uselib - încarcă o bibliotecă partajată

#include <unistd.h>
[[depreciată]] int uselib(const char *biblioteca);

Apelul de sistem uselib() are rolul de a încărca o bibliotecă partajată care urmează să fie utilizată de procesul apelant. I se atribuie o adresă de acces. Adresa la care trebuie încărcată se găsește în biblioteca însăși. Biblioteca poate avea orice format binar recunoscut.

În caz de succes, se returnează zero. În caz de eroare, se returnează -1, iar errno este configurată pentru a indica eroarea.

În plus față de toate codurile de eroare returnate de open(2) și mmap(2), pot fi returnate și următoarele:

Biblioteca specificată de biblioteca nu are permisiunea de citire sau de execuție, sau apelantul nu are permisiunea de căutare pentru unul dintre directoarele din prefixul rutei (a se vedea, de asemenea, path_resolution(7)).
Limita la nivel de sistem a numărului total de fișiere deschise a fost atinsă.
Fișierul specificat de biblioteca nu este un executabil de un tip cunoscut; de exemplu, nu are numerele magice corecte.

Linux.

Acest apel de sistem învechit nu este acceptat de glibc. În anteturile glibc nu este furnizată nicio declarație, dar, printr-o ciudățenie a istoriei, glibc înainte de glibc 2.23 a exportat un ABI pentru acest apel de sistem. Prin urmare, pentru a utiliza acest apel de sistem, era suficient să declarați manual interfața în codul dumneavoastră; alternativ, ați putea invoca apelul de sistem utilizând syscall(2).

În vechile versiuni libc (înainte de glibc 2.0), uselib() era utilizat pentru a încărca bibliotecile partajate cu nume găsite într-o matrice de nume din binar.

Începând cu Linux 3.15, acest apel de sistem este disponibil numai atunci când nucleul este configurat cu opțiunea CONFIG_USELIB.

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

Traducerea în limba română a acestui manual a fost creată de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă Nicio RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.

30 martie 2023 Pagini de manual de Linux 6.05.01