Home :: International :: Manuals :: Howto :: FAQ :: Man Pages :: Email Login

 
 

 

PRINTF

Section: Bibliotheksfunktionen (3)
Updated: 29 November 1993
Index Return to Main Contents
 

BEZEICHNUNG

getpass - Paßwort 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 "Paßwort"), restauriert den Status des Terminals und schließt /dev/tty wieder.
  Das Paßwort darf bis zu _PASSWORD_LEN (zur Zeit 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) Paßwort 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 Prozeß 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 Paßwort von stdin gelesen. Der statische Puffer hat eine Länge von 128 Bytes, so daß nur die ersten 127 Bytes des Paßworts zurückgegeben werden. Während das Paßwort 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 Paßworts übertragen. Ab libc 5.4.19 ist ebenfalls kein Editieren der Zeile mehr möglich, so daß Backspace und ähnliche Zeichen ebenfalls als Teile des Paßworts angesehen werden.

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

Wie in SUSv2 beschrieben ist, muß 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 and 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 Paßwort so schnell wie möglich auf Null setzen, um zu vermeiden, das das Paßwort weiter sichtbar in dem Addressraum dieses Prozesses ist.

 

SIEHE AUCH

crypt(3).


 

Index

BEZEICHNUNG
ÜBERSICHT
BESCHREIBUNG
RÜCKGABEWERT
FEHLER
ANMERKUNGEN
DATEIEN
GESCHICHTE
BUGS
SIEHE AUCH

 
 
 
 
Google
  Web Linuxinfor   
 

Home :: Copyright :: Privacy :: Credits :: Get a free Linuxinfor Email Account

Document on this page is part of "Linuxinfor Man Pages in HTML Format: man3". See Index Page for more info about Authorship and Copyright.

1999-2008 Linuxinfor.com. No rights reserved.