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():
    _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED ||
    /* seit Glibc 2.12: */ _POSIX_C_SOURCE >= 200809L

getgrent(), endgrent():
    _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED

BESCHREIBUNG
Die Funktion getgrent() gibt einen Zeiger auf eine Struktur zurück, welche die 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;        /* Gruppenmitglieder */
};

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

EINTR
    Es wurde ein Signal abgefangen.

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

EMFILE
    Der aufrufende Prozess hat schon zu viele offene Dateien.

ENFILE
    Zu viele offene Dateien im System.

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

  Multithreading (siehe pthreads(7))
Die Funktion getgrent() ist nicht multithread-fähig.

Die Funktionen setgrent() und endgrent() sind multithread-fähig.

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

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

KOLOPHON
This page is part of release 3.70 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at http://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> und Martin Eberhard Schauer <Martin.E.Schauer@gmx.de> 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>.