The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

getpass (3)
  • getpass (3) ( Solaris man: Библиотечные вызовы )
  • getpass (3) ( FreeBSD man: Библиотечные вызовы )
  • >> getpass (3) ( Русские man: Библиотечные вызовы )
  • getpass (3) ( Linux man: Библиотечные вызовы )
  •  

    НАЗВАНИЕ

    getpass - получает пароль  

    СИНТАКСИС

    #include <unistd.h>

    char *getpass( const char * prompt );  

    ОПИСАНИЕ

    Эта фукция является устаревшей. Не надо использовать ее.

    Функция getpass() открывает /dev/tty (управляющий терминал процесса), выводит строку prompt, выключая режим показа вводимых символов. Читает одну строку ("пароль"), затем восстанавливает состояние терминала и закрывает /dev/tty.  

    ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ

    Функция getpass возвращает указатель на статический буфер содержащий (первые PASS_MAX байтов) пароль без символа перевода строки, оканчивающийся NUL. Этот буфер может быть перезаписан следующим вызовом. При ошибке, состояние терминала восстанавливается, errno устанавливается соответствующим образом и возвращается NULL.  

    НАЙДЕННЫЕ ОШИБКИ

    Функция может завершиться неудачно если:
    ENXIO
    Процесс не имеет управляющего терминала.
     

    ЗАМЕЧАНИЯ

    Для libc4 и libc5, строка prompt не записывается на устройство /dev/tty, а отправляется в поток stderr. Кроме того, если /dev/tty не может быть открыт, то пароль читается из потока stdin. Статический буфер имеет длину 128, т.о. возвращаются только первые 127 символов пароля. Во время чтения пароля генерация сигналов (SIGINT, SIGQUIT, SIGSTOP, SIGTSTOP) отключена и соответствующие символы (обычно control-C, control-\, control-Z и control-Y) посылаются как часть пароля. С libc 5.4.19 также отключена возможность редактирования, т.е. символ Backspace и подобные ему, будут рассматриваться как часть пароля. Для glibc2, если /dev/tty не может быть открыт, то строка prompt выводится в поток ошибок stderr, а пароль читается из стандартного потока ввода stdin. При это нет ограничения на длину пароля и строку можно редактировать.

    В SUSv2 значение PASS_MAX должно быть определено в <limits.h>. В этом случае он больше, чем 8, и может быть найден используя sysconf(_SC_PASS_MAX). Однако, из стандарта POSIX.2 константы PASS_MAX, _SC_PASS_MAX и функция getpass() убраны. Libc4 и libc5 никогда не поддерживали PASS_MAX и _SC_PASS_MAX. Glibc2 допускает _SC_PASS_MAX и возвращает BUSIZ (напр. 8192).  

    ФАЙЛЫ

    /dev/tty  

    СМ. ТАКЖЕ

    crypt(3)  

    ПРИМЕЧАНИЯ ПО ИСТОРИИ

    Функция getpass появилась в Version 7 AT&T UNIX.  

    НАЙДЕННЫЕ ОШИБКИ

    Вызывающий процесс должен как можно скорее обнулить пароль во избежание возможности просмотра незашифрованного пароля в адресном пространстве процесса.


     

    Index

    НАЗВАНИЕ
    СИНТАКСИС
    ОПИСАНИЕ
    ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
    НАЙДЕННЫЕ ОШИБКИ
    ЗАМЕЧАНИЯ
    ФАЙЛЫ
    СМ. ТАКЖЕ
    ПРИМЕЧАНИЯ ПО ИСТОРИИ
    НАЙДЕННЫЕ ОШИБКИ


    Поиск по тексту MAN-ов: 




    Спонсоры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2022 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру