NAZWA¶
getpass - wczytanie hasła
SKŁADNIA¶
#include <unistd.h>
char *getpass( const char * prompt );
OPIS¶
Uwaga! To tłumaczenie może być nieaktualne!
Funkcja ta jest przestarzała. Nie należy jej używać.
Funkcja
getpass() otwiera
/dev/tty (terminal sterujący
procesu), wyprowadza napis
prompt, wyłącza echo, odczytuje
jedną linię ("hasło"), odtwarza stan terminala i
zamyka
/dev/tty.
WARTOŚĆ ZWRACANA¶
Funkcja
getpass zwraca wskaźnik do statycznego bufora
zawierającego hasło (pierwsze PASS_MAX bajtów) bez
kończącego znaku nowej linii, zakończone znakiem NUL. Bufor ten
może zostać nadpisany przez późniejsze wywołania
funkcji. W przypadku błędu, odtwarzany jest stan terminala,
odpowiednio ustawiane
errno, i zwracane NULL.
BŁĘDY¶
Funkcja może zakończyć się niepomyślnie, gdy
- ENXIO
- Proces nie posiada terminala sterującego.
UWAGI¶
Dla libc4 i libc5 tekst zachęty ("prompt") nie jest wypisywany na
/dev/tty, ale na
stderr. Ponadto, jeśli nie można
otworzyć
/dev/tty, to hasło jest odczytywane z
stdin.
Bufor statyczny ma długość 128, więc zwracanych jest tylko
pierwszych 127 bajtów hasła. Podczas odczytywania hasła
wyłączone jest generowanie sygnałów (SIGINT, SIGQUIT,
SIGSTOP, SIGTSTOP), a odpowiadające im znaki (zwykle control-C,
control-\, control-Z i control-Y) są przesyłane jako
część hasła. Począwszy od libc 5.4.19,
wyłączona jest edycja linii, tak więc również cofanie
(backspace) i jemu podobne będą widziane jako część
hasła.
Dla glibc2, jeśli nie można otworzyć
/dev/tty, to tekst
zachęty jest wypisywany na
stderr, a hasło jest odczytywane z
stdin. Nie ma natomiast ograniczenia na długość
hasła. Wyłączona jest edycja linii.
Zgodnie z SUSv2, jeśli wartość PASS_MAX jest mniejsza niż 8,
to musi być zdefiniowana w
<limits.h>, a w każdym
przypadku można ją otrzymać za pomocą
sysconf(_SC_PASS_MAX). Jednakże, POSIX.2 odchodzi od stałych
PASS_MAX i _SC_PASS_MAX oraz od funkcji
getpass (). Libc4 i libc5 nigdy
nie wspierały PASS_MAX ani _SC_PASS_MAX. Glibc2 akceptuje _SC_PASS_MAX i
zwraca BUFSIZ (np. 8192).
PLIKI¶
/dev/tty
ZOBACZ TAKŻE¶
crypt(3)
HISTORIA¶
Funkcja
getpass pojawiła się w Wersji 7 AT&T UNIX.
USTERKI¶
Proces wywołujący funkcję powinien wyzerować hasło
natychmiast, gdy tylko będzie to możliwe, aby uniknąć
pozostawania jawnego hasła widocznym w przestrzeni adresowej procesu.
Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu
Tłumaczenia Manuali i
może nie być aktualne. W razie
zauważenia różnic między powyższym opisem a
rzeczywistym zachowaniem opisywanego programu lub funkcji, prosimy o
zapoznanie się z oryginalną (angielską) wersją strony
podręcznika za pomocą polecenia:
- man --locale=C 3 getpass
Prosimy o pomoc w aktualizacji stron man - więcej informacji można
znaleźć pod adresem
http://sourceforge.net/projects/manpages-pl/.