getgrent(3) Library Functions Manual getgrent(3)

getgrent, setgrent, endgrent - obține intrarea din fișierul de grup

Biblioteca C standard (libc, -lc)

#include <sys/types.h>
#include <grp.h>
struct group *getgrent(void);
void setgrent(void);
void endgrent(void);
Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați feature_test_macros(7)):

setgrent():

    _XOPEN_SOURCE >= 500
        || /* glibc >= 2.19: */ _DEFAULT_SOURCE
        || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

getgrent(), endgrent():

     Începând cu glibc 2.22:
        _XOPEN_SOURCE >= 500 || _DEFAULT_SOURCE
    glibc 2.21 și versiunile anterioare
        _XOPEN_SOURCE >= 500
            || /* Începând cu glibc 2.12: */ _POSIX_C_SOURCE >= 200809L
            || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

Funcția getgrent() returnează un indicator către o structură care conține câmpurile defalcate ale unei înregistrări din baza de date de grupuri (de exemplu, fișierul de grup local /etc/group, NIS și LDAP). Prima dată când este apelată getgrent(), aceasta returnează prima intrare; ulterior, returnează intrări succesive.

Funcția setgrent() revine la începutul bazei de date a grupului, pentru a permite scanări repetate.

Funcția endgrent() este utilizată pentru a închide baza de date a grupului după ce a fost efectuată toată prelucrarea.

Structura group este definită în <grp.h> după cum urmează:


struct group {
    char   *gr_name;        /* numele grupului */
    char   *gr_passwd;      /* parola grupului */
    gid_t   gr_gid;         /* identificatorul grupului */
    char  **gr_mem;         /* vector de indicatori cu terminație NULL
                               la numele membrilor grupului */
};

Pentru mai multe informații despre câmpurile acestei structuri, a se vedea group(5).

Funcția getgrent() returnează un indicator la o structură group sau NULL dacă nu mai există intrări sau dacă apare o eroare.

În caz de eroare, se poate configura errno. Dacă se dorește verificarea lui errno după apel, aceasta trebuie să fie fixată la zero înainte de apel.

Valoarea de returnare poate indica o zonă statică și poate fi suprascrisă de apelurile ulterioare la getgrent(), getgrgid(3) sau getgrnam(3); (nu pasează indicatorul returnat către free(3).)

Serviciul a fost temporar indisponibil; încercați din nou mai târziu. Pentru serviciile NSS din glibc, acest lucru indică o eroare temporară de comunicare cu aceste servicii. Eroarea se poate corecta de la sine; se sugerează să încercați din nou mai târziu.
A fost captat un semnal; a se vedea signal(7).
Eroare de In/Ieș.
Limita per proces a numărului de descriptori de fișiere deschise a fost atinsă.
Limita la nivel de sistem a numărului total de fișiere deschise a fost atinsă.
Nu poate fi găsit un fișier de intrare necesar. În cazul serviciilor NSS din glibc, acest lucru indică faptul că aceste servicii nu sunt configurate corect.
Memorie insuficientă pentru alocarea structurii group.
Spațiul de memorie tampon furnizat este insuficient.

/etc/group
fișier de bază de date a grupurilor locale

Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).

Interfață Atribut Valoare
getgrent() Siguranța firelor MT-Unsafe race:grent race:grentbuf locale
setgrent(), endgrent() Siguranța firelor MT-Unsafe race:grent locale

În tabelul de mai sus, grent din race:grent semnifică faptul că, dacă oricare dintre funcțiile setgrent(), getgrent() sau endgrent() sunt utilizate în paralel în diferite fire de execuție ale unui program, pot apărea accesări concurente la date („data races”).

POSIX.1-2008.

POSIX.1-2001, SVr4, 4.3BSD.

fgetgrent(3), getgrent_r(3), getgrgid(3), getgrnam(3), getgrouplist(3), putgrent(3), group(5)

Traducerea în limba română a acestui manual a fost făcută 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.

2 mai 2024 Pagini de manual de Linux 6.8