USELIB(2) | Manualul programatorului Linux | USELIB(2) |
NUME¶
uselib - încarcă o bibliotecă partajată
REZUMAT¶
#include <unistd.h>
int uselib(const char *biblioteca);
Notă: În anteturile glibc nu este prevăzută nicio declarație a acestui apel de sistem; a se vedea NOTE.
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ă în mod corespunzător.
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.
ÎN CONFORMITATE CU¶
Apelul uselib() este specific Linux și nu ar trebui să fie utilizat în programe destinate a fi portabile.
NOTE¶
Acest apel de sistem învechit nu este suportat de glibc. În anteturile glibc nu este furnizată nicio declarație, dar, printr-o ciudățenie a istoriei, versiunile glibc anterioare versiunii 2.23 exportau 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, uselib() era utilizat pentru a încărca bibliotecile partajate cu nume găsite într-o matrice de nume din binar.
Începând cu libc 4.3.2, codul de pornire încearcă să prefixeze aceste nume cu „/usr/lib”, „/lib” și „” înainte de a renunța. În libc 4.3.4 și ulterior, aceste nume sunt căutate în directoarele găsite în LD_LIBRARY_PATH, iar dacă nu sunt găsite acolo, se încearcă prefixele „/usr/lib”, „/lib” și „/”.
De la libc 4.4.4 se încarcă doar biblioteca "/lib/ld.so", astfel încât această bibliotecă dinamică să poată încărca celelalte biblioteci necesare (din nou, folosind acest apel). Aceasta este, de asemenea, starea de fapt din libc5.
glibc2 nu utilizează acest apel.
Î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)
COLOFON -- NOTà FINALö
Această pagină face parte din versiunea 4.16 a proiectului Linux man-pages. O descriere a proiectului, informații despre raportarea erorilor și cea mai recentă versiune a acestei pagini pot fi găsite la https://www.kernel.org/doc/man-pages/.
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 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.
15 septembrie 2017 | Linux |