getgrent

GETGRENT(3)                Linux-Programmierhandbuch               GETGRENT(3)



BEZEICHNUNG
       getgrent, setgrent, endgrent - holt einen Eintrag aus der Gruppendatei

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

       struct group *getgrent(void);

       void setgrent(void);

       void endgrent(void);

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

       setgrent():
           _XOPEN_SOURCE >= 500
               || /* Glibc seit 2.19: */ _DEFAULT_SOURCE
               || /* Glibc-Versionen <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
       getgrent(), endgrent():
           Seit Glibc 2.22:
               _XOPEN_SOURCE >= 500 ||
                   _DEFAULT_SOURCE
           Glibc 2.21 und älter
               _XOPEN_SOURCE >= 500
                   || /* Seit Glibc 2.12: */ _POSIX_C_SOURCE >= 200809L
                   || /* Glibc-Versionen <= 2.19: */ _BSD_SOURCE ||
           _SVID_SOURCE

BESCHREIBUNG
       Die Funktion getgrent() gibt einen Zeiger auf eine Struktur zurück,
       welche die herausgenommenen Felder eines Eintrags in der
       Gruppendatenbank enthält (z.B. die lokale Gruppendatei /etc/group, NIS
       und LDAP). Beim ersten Aufruf gibt sie den ersten Eintrag zurück,
       danach bei jedem weiteren Aufruf die folgenden Einträge.

       Die Funktion setgrent() setzt den Dateizeiger auf den Anfang der
       Gruppendatenbank zurück, um wiederholte Abfragen zu ermöglichen.

       Die Funktion endgrent() wird dazu verwendet, die Gruppendatenbank zu
       schlieÃen, nachdem die gesamte Verarbeitung durchgeführt wurde.

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

RÃCKGABEWERT
       Die Funktion getgrent() gibt einen Zeiger auf eine group-Struktur
       zurück oder NULL, falls es keine weiteren Einträge mehr gibt oder ein
       Fehler auftritt.

       Im Fehlerfall kann errno gesetzt werden. Wenn Sie errno nach dem Aufruf
       auswerten wollen, sollten Sie die Variable vorher auf Null setzen.

       Der Rückgabewert kann auf einen statischen Bereich zeigen und kann
       durch anschlieÃende Aufrufe von getgrent(), getgrgid(3) oder
       getgrnam(3) überschrieben werden. (Ãbergeben Sie den zurückgegebenen
       Zeiger nicht an free(3).)

FEHLER
       EAGAIN Der Dienst war vorübergehend nicht erreichbar, bitte versuchen
              Sie es später erneut. Für NSS-Backends in der Glibc weist dies
              auf einen temporären Fehler bei der Kommunikation mit dem
              Backend hin. Der Fehler kann sich unter Umständen selbst
              korrigieren, ein erneuter Versuch wird empfohlen.

       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.

       ENOENT Eine erforderliche Eingabedatei konnte nicht gefunden werden.
              Für NSS-Backends in der Glibc weist dies darauf hin, dass das
              Backend nicht korrekt eingerichtet wurde.

       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                        │
       ├──────────────┼────────────────────────┼─────────────────────────────┤
       │getgrent()    │ Multithread-Fähigkeit │ MT-Unsafe race:grent        │
       │              │                        │ race:grentbuf locale        │
       ├──────────────┼────────────────────────┼─────────────────────────────┤
       │setgrent(),   │ Multithread-Fähigkeit │ MT-Unsafe race:grent locale │
       │endgrent()    │                        │                             │
       └──────────────┴────────────────────────┴─────────────────────────────┘
       In der obigen Tabelle bedeutet grent in race:grent, dass, falls eine
       der Funktionen setgrent(), getgrent() oder endgrent() in verschiedenen
       Threads eines Programms parallel verwandt werden, konkurrierende
       Zugriffe auf Daten (»data races«) auftreten könnten.

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

SIEHE AUCH
       fgetgrent(3), getgrent_r(3), getgrgid(3), getgrnam(3), getgrouplist(3),
       putgrent(3), group(5)

KOLOPHON
       Diese Seite ist Teil der Veröffentlichung 5.03 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 Helge
       Kreutzmann <debian@helgefjell.de>, 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 <debian-l10n-
       german@lists.debian.org>.



                              15. September 2017                   GETGRENT(3)