getgrent(3C) getgrent(3C)
NAME
getgrent, getgrgid, getgrnam, setgrent, endgrent, fgetgrent - Gruppen-
datei-Eintrag bestimmen
SYNTAX
#include <grp.h>
struct group *getgrent(void);
struct group *getgrgid(gidt gid);
struct group *getgrnam(const char *name);
void setgrent(void);
void endgrent(void);
struct group *fgetgrent(FILE *f);
BESCHREIBUNG
getgrent(), getgrgid() und getgrnam() geben jeweils Zeiger auf ein
Objekt mit nachstehender Struktur zurück, die die einzelnen Felder
einer Zeile der Datei /etc/group enthält. Jede Zeile enthält eine
"Gruppen"-Struktur, die in der Include-Datei grp.h definiert ist, mit
folgenden Komponenten:
struct group {
char *grname; /* Name der Gruppe */
char *grpasswd; /* verschlüsseltes Gruppenpaßwort */
gidt grgid; /* numerische Gruppen-ID */
char **grmem; /* Zeiger auf Namen der
Gruppenmitglieder */
};
Beim ersten Aufruf gibt getgrent() einen Zeiger auf die erste Gruppen-
struktur in der Datei zurück; danach wird ein Zeiger auf die nächste
Gruppenstruktur in der Datei zurückgegeben. Auf diese Weise können
aufeinanderfolgende Aufrufe zum Absuchen der gesamten Datei verwendet
werden. getgrgid() durchsucht die Datei vom Anfang, bis eine numeri-
sche Gruppen-ID gefunden wird, die gid entspricht, und gibt einen Zei-
ger auf die Struktur zurück, in der sie gefunden wurde.
getgrnam() durchsucht die Datei vom Anfang ab, bis ein Gruppenname
gefunden wird, der name entspricht, und gibt einen Zeiger auf die
Struktur zurück, in der sie gefunden wurde. Wenn beim Lesen ein Datei-
ende oder Fehler gefunden wird, geben diese Funktionen einen Nullzei-
ger zurück.
Ein Aufruf von setgrent() bewirkt ein Zurücksetzen des Schreib-/Lese-
zeigers auf den Anfang der Gruppendatei und ermöglicht damit ein wie-
derholtes Suchen. endgrent() kann am Ende der Verarbeitung aufgerufen
werden, um die Gruppendatei zu schließen.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
getgrent(3C) getgrent(3C)
fgetgrent() gibt einen Zeiger auf die nächste Gruppenstruktur in der
Datei f zurück, die das Format von /etc/group haben muß.
ERGEBNIS
getgrent(), getgrgid(), getgrnam() und fgetgrent() geben bei EOF oder
einem Fehler einen Nullzeiger zurück.
FEHLER
Die folgenden Beschreibungen der Fehlercodes sind funktionsspezifisch.
Eine allgemeingültige Beschreibung finden Sie in introprm2(2) bzw. in
errno(5).
Die Funktion getgrent() kann bei folgenden Bedingungen fehlschlagen:
EINTR Während der Operation wurde ein Signal empfangen.
EIO Ein Ein-/Ausgabefehler ist aufgetreten.
EMFILE OPENMAX Dateideskriptoren sind derzeit im aufrufenden Pro-
zeß geöffnet.
ENFILE Die maximal zulässige Anzahl von Dateien ist im System
geöffnet.
HINWEISE
Alle Informationen sind in einem statischen Bereich enthalten. Dieser
muß daher kopiert werden, wenn er gesichert werden soll.
Wenn Fehlersituationen untersucht werden sollen, muß errno vor dem
Aufruf der jeweiligen Funktion auf 0 gesetzt werden.
DATEIEN
/etc/group
SIEHE AUCH
getlogin(3C), getpwent(3C), group(4), grp(5).
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98