getgrent(3) Library Functions Manual getgrent(3) BEZEICHNUNG getgrent, setgrent, endgrent - holt einen Eintrag aus der Gruppendatei BIBLIOTHEK Standard-C-Bibliothek (libc, -lc) UBERSICHT #include #include struct group *getgrent(void); void setgrent(void); void endgrent(void); Mit Glibc erforderliche Feature-Test-Makros (siehe feature_test_macros(7)): setgrent(): _XOPEN_SOURCE >= 500 || /* Glibc >= 2.19: */ _DEFAULT_SOURCE || /* Glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE getgrent(), endgrent(): Seit Glibc 2.22: _XOPEN_SOURCE >= 500 || _DEFAULT_SOURCE Glibc 2.21 und alter _XOPEN_SOURCE >= 500 || /* Seit Glibc 2.12: */ _POSIX_C_SOURCE >= 200809L || /* Glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE BESCHREIBUNG Die Funktion getgrent() gibt einen Zeiger auf eine Struktur zuruck, welche die herausgenommenen Felder eines Eintrags in der Gruppendatenbank enthalt (z.B. die lokale Gruppendatei /etc/group, NIS und LDAP). Beim ersten Aufruf gibt sie den ersten Eintrag zuruck, danach bei jedem weiteren Aufruf die folgenden Eintrage. Die Funktion setgrent() setzt den Dateizeiger auf den Anfang der Gruppendatenbank zuruck, um wiederholte Abfragen zu ermoglichen. Die Funktion endgrent() wird dazu verwendet, die Gruppendatenbank zu schliessen, nachdem die gesamte Verarbeitung durchgefuhrt wurde. Die Struktur group wird in 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). RUCKGABEWERT Die Funktion getgrent() gibt einen Zeiger auf eine group-Struktur zuruck oder NULL, falls es keine weiteren Eintrage 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 Ruckgabewert kann auf einen statischen Bereich zeigen und kann durch anschliessende Aufrufe von getgrent(), getgrgid(3) oder getgrnam(3) uberschrieben werden. (Ubergeben Sie den zuruckgegebenen Zeiger nicht an free(3).) FEHLER EAGAIN Der Dienst war vorubergehend nicht erreichbar, bitte versuchen Sie es spater erneut. Fur NSS-Backends in der Glibc weist dies auf einen temporaren Fehler bei der Kommunikation mit dem Backend hin. Der Fehler kann sich unter Umstanden selbst korrigieren, ein erneuter Versuch wird empfohlen. EINTR Ein Signal wurde abgefangen; siehe signal(7). EIO E/A-Fehler (engl. I/O). EMFILE Die Beschrankung pro Prozess der Anzahl offener Datei-Deskriptoren wurde erreicht. ENFILE Die systemweite Beschrankung fur die Gesamtzahl offener Dateien wurde erreicht. ENOENT Eine erforderliche Eingabedatei konnte nicht gefunden werden. Fur NSS-Backends in der Glibc weist dies darauf hin, dass das Backend nicht korrekt eingerichtet wurde. ENOMEM Es ist nicht ausreichend Speicher fur die Bereitstellung einer group-Struktur vorhanden. ERANGE Zu wenig Pufferspeicher bereitgestellt. DATEIEN /etc/group lokale Gruppendatenbank-Datei ATTRIBUTE Siehe attributes(7) fur eine Erlauterung der in diesem Abschnitt verwandten Ausdrucke. +--------------+-------------------------+-----------------------------+ |Schnittstelle | Attribut | Wert | +--------------+-------------------------+-----------------------------+ |getgrent() | Multithread-Fahigkeit | MT-Unsicher race:grent | | | | race:grentbuf locale | +--------------+-------------------------+-----------------------------+ |setgrent(), | Multithread-Fahigkeit | MT-Unsicher race:grent | |endgrent() | | locale | +--------------+-------------------------+-----------------------------+ 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 konnten. STANDARDS POSIX.1-2008. GESCHICHTE POSIX.1-2001, SVr4, 4.3BSD. SIEHE AUCH fgetgrent(3), getgrent_r(3), getgrgid(3), getgrnam(3), getgrouplist(3), putgrent(3), group(5) UBERSETZUNG Die deutsche Ubersetzung dieser Handbuchseite wurde von Helge Kreutzmann , Martin Eberhard Schauer und Mario Blattermann erstellt. Diese Ubersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezuglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG ubernommen. Wenn Sie Fehler in der Ubersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Ubersetzer . Linux man-pages 6.06 31. Oktober 2023 getgrent(3)