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/.