Provided by: manpages-ro-dev_4.27.0-1_all bug

NUME

       getgrnam, getgrnam_r, getgrgid, getgrgid_r - obțin intrarea din fișierul de grup

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

SINOPSIS

       #include <sys/types.h>
       #include <grp.h>

       struct group *getgrnam(const char *name);
       struct group *getgrgid(gid_t gid);

       int getgrnam_r(const char *restrict name, struct group *restrict grp,
                      char buf[restrict .buflen], size_t buflen,
                      struct group **restrict result);
       int getgrgid_r(gid_t gid, struct group *restrict grp,
                      char buf[restrict .buflen], size_t buflen,
                      struct group **restrict result);

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

       getgrnam_r(), getgrgid_r():
           _POSIX_C_SOURCE
               || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

DESCRIERE

       Funcția  getgrnam()  returnează  un  indicator  către  o  structură  care conține câmpurile defalcate ale
       înregistrării din baza de date a grupului (de exemplu, fișierul de grup local /etc/group,  NIS  și  LDAP)
       care corespunde numelui de grup name.

       Funcția  getgrgid()  returnează  un  indicator  către  o  structură  care conține câmpurile defalcate ale
       înregistrării din baza de date a grupului care corespunde ID-ului grupului gid.

       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țiile getgrnam_r() și getgrgid_r() obțin aceleași informații ca  și  getgrnam()  și  getgrgid(),  dar
       stochează structura group recuperată în spațiul indicat de grp. Câmpurile de șiruri de caractere indicate
       de  membrii  structurii  group  sunt  stocate  în  memoria tampon buf de dimensiune buflen. În *result se
       stochează un indicator la rezultat (în caz de succes) sau NULL (în cazul în care  nu  s-a  găsit  nici  o
       intrare sau a apărut o eroare).

       Apelarea

           sysconf(_SC_GETGR_R_SIZE_MAX)

       returnează  fie  -1,  fără a modifica errno, fie o dimensiune inițială sugerată pentru buf; (dacă această
       dimensiune este prea mică, apelul eșuează cu ERANGE, caz în care apelantul poate încerca  din  nou  cu  o
       memorie tampon mai mare).

VALOAREA RETURNATĂ

       Funcțiile  getgrnam()  și  getgrgid()  returnează  un  indicator la o structură group sau NULL dacă nu se
       găsește intrarea corespunzătoare sau dacă apare o eroare. În cazul în care apare  o  eroare,  errno  este
       configurată  pentru  a indica eroarea. Dacă se dorește verificarea lui errno după apel, acesta 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(3), getgrgid() sau getgrnam(). Nu treceți indicatorul returnat la free(3) !

       În  caz  de succes, getgrnam_r() și getgrgid_r() returnează zero și stabilesc *result la grp. În cazul în
       care nu s-a găsit nicio înregistrare de grup corespunzătoare, aceste funcții returnează  0  și  stochează
       NULL în *result. În caz de eroare, se returnează un număr de eroare și se stochează NULL în *result.

ERORI-IEȘIRE

       0 sau ENOENT sau ESRCH sau EBADF sau EPERM sau EPERM sau ...
              Argumentul name sau gid dat nu a fost găsit.

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

       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țăAtributValoare                                              │
       ├────────────────────────────┼───────────────────┼──────────────────────────────────────────────────────┤
       │ getgrnam()                 │ Siguranța firelor │ MT-Unsafe race:grnam locale                          │
       ├────────────────────────────┼───────────────────┼──────────────────────────────────────────────────────┤
       │ getgrgid()                 │ Siguranța firelor │ MT-Unsafe race:grgid locale                          │
       ├────────────────────────────┼───────────────────┼──────────────────────────────────────────────────────┤
       │ getgrnam_r(), getgrgid_r() │ Siguranța firelor │ MT-Safe locale                                       │
       └────────────────────────────┴───────────────────┴──────────────────────────────────────────────────────┘

VERSIUNI

       Formularea prezentată mai sus la „VALOAREA RETURNATĂ” este din POSIX.1. Acesta nu numește „not found” (nu
       se  găsește)  o  eroare, prin urmare nu specifică ce valoare ar putea avea errno în această situație. Dar
       acest lucru face imposibilă recunoașterea erorilor. S-ar putea argumenta că, în  conformitate  cu  POSIX,
       errno ar trebui lăsată neschimbată dacă nu se găsește o intrare. Experimentele pe diferite sisteme de tip
       UNIX  arată  că  în  această  situație  apar  o  mulțime  de  valori  diferite:  0, ENOENT, EBADF, ESRCH,
       EWOULDBLOCK, EPERM și probabil altele.

STANDARDE

       POSIX.1-2008.

ISTORIC

       POSIX.1-2001, SVr4, 4.3BSD.

CONSULTAȚI ȘI

       endgrent(3), fgetgrent(3), getgrent(3), getpwnam(3), setgrent(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.

Pagini de manual de Linux 6.9.1                    2 mai 2024                                        getgrnam(3)