getgrnam(3)

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ță | Atribut | Valoare
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 (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.