Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ getpwent(3C) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

getgrent(3C)

getlogin(3C)

passwd(4)

pwd(5)

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

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026