Provided by:
manpages-de-dev_0.10-1_all 
BEZEICHNUNG
getpass - Passwort erfragen
Diese Handbuchseite ist eventuell veraltet. Im Zweifelsfall ziehen Sie
die englischsprachige Handbuchseite zu Rate, indem Sie
man -LC 3 getpass
eingeben.
"UBERSICHT
#include <pwd.h>
char *getpass( const char * prompt );
BESCHREIBUNG
Diese Funktion ist veraltet. Benutzen Sie sie nicht.
Die Funktion offnet /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 schlieBt /dev/tty wieder.
Das Passwort darf bis zu _PASSWORD_LEN (zurzeit 128) Zeichen lang sein.
Alle uberzahligen Zeichen und das abschlieBende Newline-Zeichen werden
verworfen. (Dies kann unter Linux anders sein)
R"UCKGABEWERT
Die Funktion getpass gibt einen Zeiger auf einen statischen Puffer
zuruck, der das (bzw. die ersten PASS_MAX Bytes des) Passwort ohne
abschlieBendes Newline-Zeichen, jedoch mit einem terminierenden NULL-
Zeichen, enthalt. Dieser Puffer wird von einem nachfolgenden Aufruf
uberschrieben. Im Fehlerfall wird der Status des Terminals
wiederhergestellt, errno entsprechend gesetzt und NULL zuruckgegeben.
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 geoffnet werden kann, wird das
Passwort von stdin gelesen. Der statische Puffer hat eine Lange von
128 Bytes, so dass nur die ersten 127 Bytes des Passworts zuruckgegeben
werden. Wahrend 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 ubertragen. Ab libc 5.4.19 ist
ebenfalls kein Editieren der Zeile mehr moglich, so dass Backspace und
ahnliche Zeichen ebenfalls als Teile des Passworts angesehen werden.
Bei glibc2 wird der Prompt auf stderr geschrieben, falls /dev/tty
nicht geoffnet werden kann und das Passwort wird von stdin gelesen. Es
gibt keine Begrenzung der Lange 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 unterstutzt. Glibc2 akzeptiert _SC_PASS_MAX und gibt
BUFSIZ zuruck (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 zuruck.
Weitere Aufrufe von getpass werden dieses gleiche Objekt verandern.
Der aufrufende Prozess sollte das Passwort so schnell wie moglich auf
Null setzen, um zu vermeiden, dass das Passwort weiter sichtbar in dem
Adressraum dieses Prozesses ist.
SIEHE AUCH
crypt(3).