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

BEZEICHNUNG

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

BIBLIOTHEK

       Standard-C-Bibliothek (libc, -lc)

Ü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 puf[restrict .puflänge], size_t puflänge,
                      struct group **restrict ergebnis);
       int getgrgid_r(gid_t gid, struct group *restrict grp,
                      char puf[restrict .puflänge], size_t puflänge,
                      struct group **restrict ergebnis);

   Mit Glibc erforderliche Feature-Test-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;         /* mit Nullzeiger abgeschlossenes 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 puf der Größe  puflänge
       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.
       ┌────────────────────────────┬───────────────────────┬──────────────────────────────────────────────────┐
       │ SchnittstelleAttributWert                                             │
       ├────────────────────────────┼───────────────────────┼──────────────────────────────────────────────────┤
       │ getgrnam()                 │ Multithread-Fähigkeit │ MT-Unsicher race:grnam locale                    │
       ├────────────────────────────┼───────────────────────┼──────────────────────────────────────────────────┤
       │ getgrgid()                 │ Multithread-Fähigkeit │ MT-Unsicher race:grgid locale                    │
       ├────────────────────────────┼───────────────────────┼──────────────────────────────────────────────────┤
       │ getgrnam_r(), getgrgid_r() │ Multithread-Fähigkeit │ MT-Sicher locale                                 │
       └────────────────────────────┴───────────────────────┴──────────────────────────────────────────────────┘

VERSIONEN

       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.

STANDARDS

       POSIX.1-2008.

GESCHICHTE

       POSIX.1-2001, SVr4, 4.3BSD.

SIEHE AUCH

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

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

Linux man-pages 6.9.1                              2. Mai 2024                                       getgrnam(3)