Provided by: manpages-pl-dev_20060617-1_all bug

NAZWA

       getpass - wczytanie hasła

SKŁADNIA

       #include <unistd.h>

       char *getpass( const char * prompt );

OPIS

       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.