getnetent_r(3)

NUME
getnetent_r, getnetbyname_r, getnetbyaddr_r - obține intrarea de rețea (reentrantă)

BIBLIOTECA
Biblioteca C standard (libc, -lc)

REZUMAT
#include <netdb.h>

int getnetent_r(struct netent *restrict result_buf,
                char buf[restrict .buflen], size_t buflen,
                struct netent **restrict result,
                int *restrict h_errnop);
int getnetbyname_r(const char *restrict name,
                struct netent *restrict result_buf,
                char buf[restrict .buflen], size_t buflen,
                struct netent **restrict result,
                int *restrict h_errnop);
int getnetbyaddr_r(uint32_t net, int type,
                struct netent *restrict result_buf,
                char buf[restrict .buflen], size_t buflen,
                struct netent **restrict result,
                int *restrict h_errnop);

    Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați feature_test_macros(7)):

getnetent_r(), getnetbyname_r(), getnetbyaddr_r():
    Începând cu glibc 2.19:
        _DEFAULT_SOURCE
    glibc 2.19 și versiunile anterioare:
        _BSD_SOURCE || _SVID_SOURCE

DESCRIERE
Funcțiile getnetent_r(), getnetbyname_r() și getnetbyaddr_r() sunt echivalentele de reentrare ale funcțiilor getnetent(3), getnetbyname(3) și, respectiv, getnetbynumber(3). Ele diferă prin modul în care este returnată structura netent, precum și prin semnătura de apelare a funcției și valoarea de returnare. Această pagină de manual descrie doar diferențele față de funcțiile care nu sunt reentrante.

În loc să returneze un indicator la o structură netent alocată static ca rezultat al funcției, aceste funcții copiază structura în locația indicată de result_buf.

Matricea buf este utilizată pentru a stoca câmpurile de șiruri de caractere indicate de structura rpcent returnată; (funcțiile ce nu sunt reentrante alocă aceste șiruri de caractere în memoria statică.) Dimensiunea acestei matrice este specificată în buflen. Dacă buf este prea mică, apelul eșuează cu eroarea ERANGE, iar apelantul trebuie să încerce din nou cu o memorie tampon mai mare; (o memorie tampon cu o lungime de 1024 octeți ar trebui să fie suficientă pentru majoritatea aplicațiilor).

Dacă apelul funcției obține cu succes o înregistrare de rețea, atunci *result este definit ca fiind orientat către result_buf; în caz contrar, *result este definit la NULL.

Memoria tampon indicată de h_errnop este utilizată pentru a returna valoarea care ar fi stocată în variabila globală h_errno de către versiunile ce nu sunt reentrante ale acestor funcții.

VALOAREA RETURNATĂ
În caz de succes, aceste funcții returnează 0. În caz de eroare, acestea returnează unul dintre numerele pozitive de eroare enumerate în ERORI.

În caz de eroare, înregistrare nedescoperită (getnetbyname_r(), getnetbyaddr_r()) sau sfârșit de intrare (getnetent_r()), result este definit la NULL.

ERORI

ENOENT
    (getnetent_r()) Nu mai există înregistrări în baza de date.

ERANGE
    buf este prea mic. Încercați din nou cu o memorie tampon mai mare (și cu buflen mărit).

ATRIBUTE
Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
Interfață | Atribut | Valoare
getnetent_r(), getnetbyname_r(), getnetbyaddr_r() | Siguranța firelor | MT-Safe locale

STANDARDE
Aceste funcții sunt extensii GNU. Funcții cu nume similare există și pe alte sisteme, dar de obicei cu semnături de apelare diferite.

CONSULTAȚI ȘI
getnetent(3), networks(5)

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.