getgrnam

GETGRNAM(3)                 Linux-Programmierhandbuch                GETGRNAM(3)



BEZEICHNUNG
       getgrnam, getgrnam_r, getgrgid, getgrgid_r - ermittelt den Eintrag in der
       Gruppendatei

ÜBERSICHT
       #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 *restrict buf, size_t buflen,
                      struct group **restrict result);
       int getgrgid_r(gid_t gid, struct group *restrict grp,
                      char *restrict buf, size_t buflen,
                      struct group **restrict result);

   Mit Glibc erforderliche Makros (siehe feature_test_macros(7)):

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

BESCHREIBUNG
       Die Funktion getgrnam() liefert einen Zeiger auf eine Struktur zurück,
       die die Felder des Eintrags in der Gruppendatenbank (beispielsweise die
       lokale Gruppendatei /etc/group, NIS und LDAP), der zur Gruppe name passt.

       Die Funktion getgrgid() liefert einen Zeiger auf eine Struktur zurück,
       die die Felder des Eintrags in der Gruppendatenbank enthält, der zur
       Gruppe mit der ID gid passt.

       Die Struktur group wird in <grp.h> wie folgt definiert:

           struct group {
               char   *gr_name;        /* Gruppenname */
               char   *gr_passwd;      /* Gruppenpasswort */
               gid_t   gr_gid;         /* Gruppenkennung */
               char  **gr_mem;         /* NULL-terminiertes Feld von Zeigern auf
                                          Namen von Gruppenmitgliedern */
           };

       Weitere Informationen zu den Feldern dieser Struktur finden Sie in
       group(5).

       Die Funktionen getgrnam_r() und getgrgid_r() beschaffen die gleichen
       Informationen wie getgrnam() und getgrgid(), speichern aber die
       abgefragte group-Struktur an dem Ort, auf den grp weist. Die
       String-Felder, auf die die Mitglieder der group-Struktur weisen, werden
       im Puffer buf der Größe buflen gespeichert. In *result wird ein Zeiger
       auf das Ergebnis (nach erfolgreichem Aufruf) oder NULL (falls kein
       Eintrag gefunden wurde oder ein Fehler auftrat) in * Ergebnis
       gespeichert.

       Der Aufruf

           sysconf(_SC_GETGR_R_SIZE_MAX)

       liefert entweder -1 ohne Änderung von errno oder die anfänglich
       vorgeschlagene Größe für Puffer zurück. (Falls diese Größe zu klein ist,
       schlägt der Aufruf mit ERANGE fehl. In diesem Fall kann der Aufrufende es
       mit einem größeren Puffer erneut versuchen.)

RÜCKGABEWERT
       Die Funktionen getgrnam() und getgrgid() liefern einen Zeiger auf
       group-Struktur zurück. Wurde der gesuchte Eintrag nicht gefunden oder
       trat ein Fehler auf, wird NULL zurückgeliefert und errno gesetzt, um den
       Fehler anzuzeigen. Wenn Sie nach dem Aufruf errno prüfen wollen, sollten
       er vor dem Aufruf auf 0 gesetzt werden.

       Der Rückgabewert darf auf statischen Speicher zeigen und kann von
       nachfolgenden Aufrufen von getgrent(3), getgrgid() oder getgrnam()
       überschrieben werden.  (Übergeben Sie den zurückgegebenen Zeiger nicht an
       free(3).)

       Bei Erfolg geben getgrnam_r() und getgrgid_r() Null zurück und
       setzen*result auf grp. Wenn kein passender Gruppen-Datensatz gefunden
       wurde, geben diese Funktionen 0 zurück und speichern in *result NULL. Im
       Fehlerfall wird eine Fehlernummer zurückgegeben und wiederum NULL in
       *result gespeichert.

FEHLER
       0 oder ENOENT oder ESRCH oder EBADF oder EPERM oder …
              Der angegebene name oder die gid wurde nicht gefunden.

       EINTR  Ein Signal wurde abgefangen; siehe signal(7).

       EIO    E/A-Fehler (engl. I/O).

       EMFILE Die Beschränkung pro Prozess der Anzahl offener Datei-Deskriptoren
              wurde erreicht.

       ENFILE Die systemweite Beschränkung für die Gesamtzahl offener Dateien
              wurde erreicht.

       ENOMEM Es ist nicht ausreichend Speicher für die Bereitstellung einer
              group-Struktur vorhanden.

       ERANGE Zu wenig Pufferspeicher bereitgestellt.

DATEIEN
       /etc/group
              lokale Gruppendatenbank-Datei

ATTRIBUTE
       Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt
       verwandten Ausdrücke.

       ┌──────────────┬───────────────────────┬─────────────────────────────────┐
       │Schnittstelle Attribut              Wert                            │
       ├──────────────┼───────────────────────┼─────────────────────────────────┤
       │getgrnam()    │ Multithread-Fähigkeit │ MT-Unsafe race:grnam locale     │
       ├──────────────┼───────────────────────┼─────────────────────────────────┤
       │getgrgid()    │ Multithread-Fähigkeit │ MT-Unsafe race:grgid locale     │
       ├──────────────┼───────────────────────┼─────────────────────────────────┤
       │getgrnam_r(), │ Multithread-Fähigkeit │ MT-Safe locale                  │
       │getgrgid_r()  │                       │                                 │
       └──────────────┴───────────────────────┴─────────────────────────────────┘

KONFORM ZU
       POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.

ANMERKUNGEN
       Die oben unter »RÜCKGABEWERT« gegebene Formulierung stammt aus POSIX.1.
       Es ruft im Fehlerfall nicht »not found« auf und legt daher nicht fest,
       welchen Wert errno in dieser Situation haben könnte. Aber das macht es
       unmöglich, Fehler zu erkennen. Man könnte argumentieren, dass nach POSIX
       errno unverändert bleiben sollten, wenn ein Eintrag nicht gefunden wird.
       Experimente auf verschiedenen UNIX-ähnlichen Systemen zeigen, dass in
       dieser Situation viele verschiedene Werte auftreten: 0, ENOENT, EBADF,
       ESRCH, EWOULDBLOCK, EPERM und wahrscheinlich weitere.

SIEHE AUCH
       endgrent(3), fgetgrent(3), getgrent(3), getpwnam(3), setgrent(3),
       group(5)

KOLOPHON
       Diese Seite ist Teil der Veröffentlichung 5.11 des Projekts
       Linux-man-pages. Eine Beschreibung des Projekts, Informationen, wie
       Fehler gemeldet werden können sowie die aktuelle Version dieser Seite
       finden sich unter https://www.kernel.org/doc/man-pages/.


ÜBERSETZUNG
       Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Eberhard
       Schauer <Martin.E.Schauer@gmx.de> und Mario Blättermann
       <mario.blaettermann@gmail.com> erstellt.

       Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General
       Public License Version 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ oder
       neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG
       übernommen.

       Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken
       Sie bitte eine E-Mail an die Mailingliste der Übersetzer ⟨debian-l10n-
       german@lists.debian.org⟩.



                                  22. März 2021                      GETGRNAM(3)