getpass -
запрашивает
пароль
Standard C library (
libc,
-lc)
#include <unistd.h>
[[deprecated]] char *getpass(const char *prompt);
getpass():
Since glibc 2.2.2:
_XOPEN_SOURCE && ! (_POSIX_C_SOURCE >= 200112L)
|| /* glibc >= 2.19: */ _DEFAULT_SOURCE
|| /* glibc <= 2.19: */ _BSD_SOURCE
Before glibc 2.2.2:
none
This function is obsolete. Do not use it. See NOTES. If you want to read input
without terminal echoing enabled, see the description of the
ECHO flag
in
termios(3).
Функция
getpass()
открывает
/dev/tty
(управляющий
терминал
процесса),
выводит
строку
prompt,
выключает
показ
выводимых
символов,
читает
одну
строку
(«пароль»),
восстанавливает
состояние
терминала
и
закрывает
/dev/tty.
The function
getpass() returns a pointer to a static buffer containing
(the first
PASS_MAX bytes of) the password without the trailing
newline, terminated by a null byte ('\0'). This buffer may be overwritten by a
following call. On error, the terminal state is restored,
errno is set
to indicate the error, and NULL is returned.
- ENXIO
- Процесс
не имеет
управляющего
терминала.
/dev/tty
Описание
терминов
данного
раздела
смотрите в
attributes(7).
Интерфейс |
Атрибут |
Значение |
getpass() |
Безвредность
в нитях |
MT-Unsafe term |
Есть в SUSv2, но
помечена
как
УСТАРЕВШАЯ.
Удалена из
POSIX.1-2001.
You should use instead
readpassphrase(3bsd), provided by
libbsd.
В
реализации
библиотеки
GNU C, если файл
/dev/tty не может
быть
открыт, то
строка
приглашения
выводится
в поток
ошибок
stderr, а
пароль
читается
из
стандартного
потока
ввода
stdin.
Ограничения
на длину
пароля нет
и строку
можно
редактировать.
Согласно SUSv2
значение
PASS_MAX должно
быть
определено
в
<limits.h>, если
оно меньше 8,
и в любом
случае
может быть
получено с
помощью
sysconf(_SC_PASS_MAX).
Однако, из
стандарта
POSIX.2
константы
PASS_MAX,
_SC_PASS_MAX и
функция
getpass()
убраны. В glibc
учитывается
_SC_PASS_MAX и
возвращается
BUFSIZ
(например, 8192).
Вызывающий
процесс
должен как
можно
скорее
обнулить
пароль во
избежание
возможности
просмотра
незашифрованного
пароля в
адресном
пространстве
процесса.
crypt(3)
Русский
перевод
этой
страницы
руководства
был сделан
Azamat Hackimov <
[email protected]>, Dmitry Bolkhovskikh
<
[email protected]>, Vladislav <
[email protected]>,
Yuri Kozlov <
[email protected]> и
Иван
Павлов <
[email protected]>
Этот
перевод
является
бесплатной
документацией;
прочитайте
Стандартную
общественную
лицензию GNU
версии 3
или более
позднюю,
чтобы
узнать об
условиях
авторского
права. Мы не
несем
НИКАКОЙ
ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
[email protected]