uselib(2)

NUME
uselib - încarcă o bibliotecă partajată

REZUMAT
#include <unistd.h>

[[depreciată]] int uselib(const char *biblioteca);

DESCRIERE
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.

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

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

EACCES
    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)).

ENFILE
    Limita la nivel de sistem a numărului total de fișiere deschise a fost atinsă.

ENOEXEC
    Fișierul specificat de biblioteca nu este un executabil de un tip cunoscut; de exemplu, nu are numerele magice corecte.

STANDARDE
Linux.

ISTORIC
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.

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

TRADUCERE
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 (https://www.gnu.org/licenses/gpl-3.0.html) 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.