Provided by: manpages-de-dev_0.5-4.1ubuntu1_all bug

BEZEICHNUNG

       getpass - Passwort erfragen

ÜBERSICHT

       #include <pwd.h>

       char *getpass( const char * prompt );

BESCHREIBUNG

       Diese Funktion ist veraltet.  Benutzen Sie sie nicht.

       Die   Funktion   öffnet  /dev/tty  (das  kontrollierende  Terminal  des
       Prozesses), zeigt die Zeichenkette prompt an, schaltet die Ausgabe  ab,
       liest  die Zeile (das "Passwort"), restauriert den Status des Terminals
       und schließt /dev/tty wieder.

       Das Passwort darf bis zu _PASSWORD_LEN (zurzeit 128) Zeichen lang sein.
       Alle  überzähligen Zeichen und das abschließende Newline-Zeichen werden
       verworfen. (Dies kann unter Linux anders sein)

RÜCKGABEWERT

       Die Funktion getpass gibt einen  Zeiger  auf  einen  statischen  Puffer
       zurück,  der  das  (bzw.  die  ersten PASS_MAX Bytes des) Passwort ohne
       abschließendes Newline-Zeichen, jedoch mit einem  terminierenden  NULL-
       Zeichen,  enthält.   Dieser  Puffer wird von einem nachfolgenden Aufruf
       überschrieben.   Im  Fehlerfall   wird   der   Status   des   Terminals
       wiederhergestellt, errno entsprechend gesetzt und NULL zurückgegeben.

FEHLER

       Die Funktion kann fehlschlagen, falls

       ENXIO  Der Prozess hat kein kontrollierendes Terminal.

ANMERKUNGEN

       Bei  libc4  und  libc5  wird der Prompt nicht auf /dev/tty geschrieben,
       sondern auf stderr.  Wenn /dev/tty nicht geöffnet werden kann, wird das
       Passwort  von  stdin  gelesen.  Der statische Puffer hat eine Länge von
       128 Bytes, so dass nur die ersten 127 Bytes des Passworts zurückgegeben
       werden.   Während  das  Passwort  gelesen  wird,  ist die Erzeugung von
       Signalen (SIGINT, SIGQUIT,  SIGSTOP,  SIGTSTOP)  abgeschaltet  und  die
       entsprechenden  Zeichen (normalerweise Strg-C, Strg-\, strg-Z und Strg-
       V) werden als Teil  des  Passworts  übertragen.   Ab  libc  5.4.19  ist
       ebenfalls  kein Editieren der Zeile mehr möglich, so dass Backspace und
       ähnliche Zeichen ebenfalls als Teile des Passworts angesehen werden.

       Bei  glibc2 wird der Prompt  auf  stderr  geschrieben,  falls  /dev/tty
       nicht geöffnet werden kann und das Passwort wird von stdin gelesen.  Es
       gibt keine Begrenzung der Länge des Passwortes.  Editierung  der  Zeile
       ist nicht deaktiviert.

       Wie  in SUSv2 beschrieben ist, muss der Wert von PASS_MAX in <limits.h>
       definiert sein, falls es kleiner als 8 ist,  und  auf  jeden  Fall  mit
       sysconf(_SC_PASS_MAX)  in  Erfahrung  gebracht werden kann.  Allerdings
       verwirft POSIX.2 die Konstanten PASS_MAX  und  _SC_PASS_MAX  sowie  die
       Funktion  getpass().   Libc4  und  libc5  haben  niemals  PASS_MAX oder
       _SC_PASS_MAX unterstützt.   Glibc2  akzeptiert  _SC_PASS_MAX  und  gibt
       BUFSIZ zurück (z.B., 8192).

DATEIEN

       /dev/tty

GESCHICHTE

       Eine getpass Funktion erschien in Version 7 AT&T UNIX.

BUGS

       Die   Funktion   getpass  speichert  ihr  Resultat  in  einem  internen
       statischen Objekt und gibt nur den Zeiger  auf  dieses  Objekt  zurück.
       Weitere Aufrufe von getpass werden dieses gleiche Objekt verändern.

       Der  aufrufende  Prozess sollte das Passwort so schnell wie möglich auf
       Null setzen, um zu vermeiden, dass das Passwort weiter sichtbar in  dem
       Adressraum dieses Prozesses ist.

SIEHE AUCH

       crypt(3).