getpwent(3C) getpwent(3C)
NAME
getpwent, getpwuid, getpwnam, setpwent, endpwent, fgetpwent - Paßwort-
dateieintrag ändern
SYNTAX
#include <pwd.h>
struct passwd *getpwent(void);
struct passwd *getpwuid(uidt uid);
struct passwd *getpwnam(const char *name);
void setpwent(void);
void endpwent(void);
struct passwd *fgetpwent(FILE *f);
BESCHREIBUNG
getpwent(), getpwuid() und getpwnam() geben jeweils einen Zeiger auf
ein Objekt mit nachstehender Struktur zurück, die die einzelnen Felder
einer Zeile der Datei /etc/passwd enthält. Jede Zeile in der Datei
enthält eine passwd-Struktur (Paßwortstruktur), die in der Include-
Datei pwd.h deklariert ist:
struct passwd {
char *pwname;
char *pwpasswd;
uidt pwuid;
gidt pwgid;
char *pwage;
char *pwcomment;
char *pwgecos;
char *pwdir;
char *pwshell;
};
Beim ersten Aufruf gibt getpwent() einen Zeiger auf die erste passwd-
Struktur in der Datei zurück. Danach gibt es einen Zeiger auf die
nächste passwd-Struktur in der Datei zurück. Auf diese Weise können
aufeinanderfolgende Aufrufe zum Durchsuchen der gesamten Datei verwen-
det werden. getpwuid() sucht vom Anfang der Datei an, bis eine numeri-
sche Benutzer-ID gefunden wird, die gleich uid ist, und gibt einen
Zeiger auf die Struktur zurück, in der sie gefunden wurde. getpwnam()
sucht vom Anfang der Datei, bis ein Anmeldename gefunden wird, der zu
name paßt, und gibt einen Zeiger auf die Struktur zurück, in der er
gefunden wurde. Wird beim Lesen ein Dateiende oder ein Fehler gefun-
den, geben diese Funktionen einen Nullzeiger zurück.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
getpwent(3C) getpwent(3C)
Ein Aufruf von setpwent() bewirkt das Zurücksetzen des Schreib-/Lese-
zeigers der Paßwortdatei auf den Dateianfang und ermöglicht somit ein
wiederholtes Suchen. endpwent() kann zum Schließen der Paßwortdatei
nach Beendigung der Verarbeitung aufgerufen werden.
fgetpwent() gibt einen Zeiger auf die nächste passwd-Struktur in der
Datei f zurück, die das Format von /etc/passwd haben muß.
ERGEBNIS
getpwent(), getpwnid(), getpwnam() und fgetpwent() geben einen Null-
zeiger zurück, wenn EOF oder ein Fehler vorliegt.
FEHLER
Die folgenden Beschreibungen der Fehlercodes sind funktionsspezifisch.
Eine allgemeingültige Beschreibung finden Sie in introprm2(2) bzw. in
errno(5).
Die Funktionen getpwent(), setpwent() and endpwent() können bei fol-
gender Bedingung fehlschlagen:
EIO Ein Ein-/Ausgabefehler ist aufgetreten.
getpwent() und setpwent() können außerdem fehlschlagen, wenn eine der
folgenden Bedingungen vorliegt:
EMFILE OPENMAX Dateideskriptoren sind derzeit im aufrufenden Pro-
zeß geöffnet.
ENFILE Die maximal zulässige Anzahl von Dateien sind im System
geöffnet.
HINWEISE
Alle Daten werden in einen statischen Bereich geschrieben und müssen
daher kopiert werden, wenn sie gesichert werden sollen.
Wenn Fehlersituationen untersucht werden sollen, muß errno vor dem
Aufruf der Funktionen auf 0 gesetzt werden.
Die Merkmale eines aktuellen Prozesses können wie folgt festgestellt
werden:
getpwuid(geteuid()) gibt den Namen der effektiven Benutzer-ID des Pro-
zesses zurück, getlogin() gibt den Anmeldenamen
der aktuellen Login-Aktivität zurück und
getpwuid(getuid()) gibt den Namen der realen Benutzer-ID des Prozes-
ses zurück.
DATEIEN
/etc/passwd
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
getpwent(3C) getpwent(3C)
SIEHE AUCH
getgrent(3C), getlogin(3C), passwd(4), pwd(5).
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98