Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

endgrent, getgrent, setgrent - Gruppenverwaltung

&pagelevel(4)&pagelevel

Definition

#include <grp.h>

void endgrent (void);

void setgrent (void);

struct group *getgrent (void);

Beschreibung

getgrent() gibt einen 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 ein Objekt der Struktur group (Gruppen-Struktur), die in der Include-Datei grp.h deklariert ist, mit folgenden Elementen:

struct        group {
     char    *gr_name;       /* Name der Gruppe */
     char    *gr_passwd;     /* verschlüsseltes Gruppenpasswort */
     gid_t    gr_gid;        /* numerische Gruppennummer */
     char   **gr_mem;        /* Zeiger auf Namen der Gruppenmitglieder */
};

getgrent() gibt beim ersten Aufruf einen Zeiger auf die erste Gruppen-Struktur in der Datei zurück; danach gibt es einen Zeiger auf die nächste Gruppen-Struktur in der Datei zurück. Auf diese Weise können aufeinander folgende Aufrufe zum Absuchen der gesamten Datei verwendet werden.

setgrent() bewirkt das Zurücksetzen des Schreib-/Lesezeigers auf den Anfang der Gruppendatei und ermöglicht damit ein wiederholtes Suchen.

endgrent() kann am Ende der Verarbeitung aufgerufen werden, um die Gruppendatei zu schließen.

endgrent(), getgrent() und setgrent() sind nicht threadsicher.

Returnwert

getgrent():

Zeiger auf die erste Gruppen-Struktur der Gruppendatei

 


beim ersten Aufruf

 

Zeiger auf die nächste Gruppen-Struktur der Gruppendatei

 


bei nachfolgenden Aufrufen

 

Nullzeiger

bei EOF oder Fehler. errno wird gesetzt um den Fehler anzuzeigen.

Fehler

getgrent() schlägt fehl, wenn gilt:


EINTR

getgrent() wurde durch ein Signal unterbrochen.


EIO

Während des Lesens oder Schreibens ist ein Ein-/Ausgabefehler aufgetreten.


EMFILE

Im aufrufenden Prozess sind {OPEN_MAX} Dateideskriptoren geöffnet.


ENFILE

Im System ist die maximal zulässige Anzahl von Dateien geöffnet.


Erweiterung

 

ENOMEM

Der Speicherplatz reicht nicht aus, um die globalen Daten von getgrent() anzulegen. (Ende)

Hinweise

Der Returnwert von getgrent() kann in einen Bereich zeigen, der von einem nachfolgenden Aufruf von getgrgid(), getgrnam() oder getgrent() überschrieben wird.

Diese Funktionen werden weiterhin angeboten, weil sie in der Vergangenheit gebräuchlich waren. Jedoch ist der Aufbau der Struktur group implementierungsabhängig, weswegen Anwendungen, die diese Funktionen einsetzen, nicht portabel sind. Portable Anwendungen sollten daher getgrnam() und getgrgid() verwenden.

Siehe auch

getgrgid(), getgrnam(), getlogin(), getpwent(), grp.h.