getgrent(3) | Library Functions Manual | getgrent(3) |
NUME
getgrent, setgrent, endgrent - obține intrarea din fișierul de grup
BIBLIOTECA
Biblioteca C standard (libc, -lc)
SINOPSIS
#include <sys/types.h> #include <grp.h>
struct group *getgrent(void);
void setgrent(void); void endgrent(void);
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
DESCRIERE
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).
VALOAREA RETURNATĂ
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).)
ERORI-IEȘIRE
- EAGAIN
- 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.
- EINTR
- A fost captat un semnal; a se vedea signal(7).
- EIO
- Eroare de In/Ieș.
- EMFILE
- Limita per proces a numărului de descriptori de fișiere deschise a fost atinsă.
- ENFILE
- Limita la nivel de sistem a numărului total de fișiere deschise a fost atinsă.
- ENOENT
- 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.
- ENOMEM
- Memorie insuficientă pentru alocarea structurii group.
- ERANGE
- Spațiul de memorie tampon furnizat este insuficient.
FIȘIERE
- /etc/group
- fișier de bază de date a grupurilor locale
ATRIBUTE
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”).
STANDARDE
POSIX.1-2008.
ISTORIC
POSIX.1-2001, SVr4, 4.3BSD.
CONSULTAȚI ȘI
fgetgrent(3), getgrent_r(3), getgrgid(3), getgrnam(3), getgrouplist(3), putgrent(3), group(5)
TRADUCERE
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 |