URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 3829
[ Назад ]

Исходное сообщение
"ввод пароля ака terminal"

Отправлено maverick , 16-Янв-05 23:30 
Привет! Как мне на си сделать, чтобы при вводе пароля он не отображался, а, ещё лучше, отображался звёздочками. Знаю, надо что-то с терминалом нахимичить: на перле знаю как это делается, а вот на си... Может, конкретную либу подскажите или системную функцию какую...

Содержание

Сообщения в этом обсуждении
"ввод пароля ака terminal"
Отправлено dimus , 17-Янв-05 08:36 
Вообще то для этого есть стандартная функция getpass. Правда она в мане указана как устаревшая.

"ввод пароля ака terminal"
Отправлено romanSA , 17-Янв-05 14:44 
>Привет! Как мне на си сделать, чтобы при вводе пароля он не
>отображался, а, ещё лучше, отображался звёздочками. Знаю, надо что-то с терминалом
>нахимичить: на перле знаю как это делается, а вот на си...
>Может, конкретную либу подскажите или системную функцию какую...

Можно переключать режимы терминала: запретить эхо, отменить буферизацию и т.п.

см. man tcsetattr

Если интересно могу выслать пример.
Ещё можно использовать curses, но если не нужно гонять курсор по экрану, то это лишнее.


"ввод пароля ака terminal"
Отправлено chip , 19-Янв-05 19:37 
>>Привет! Как мне на си сделать, чтобы при вводе пароля он не
>>отображался, а, ещё лучше, отображался звёздочками. Знаю, надо что-то с терминалом
>>нахимичить: на перле знаю как это делается, а вот на си...
>>Может, конкретную либу подскажите или системную функцию какую...
>
>Можно переключать режимы терминала: запретить эхо, отменить буферизацию и т.п.
>
>см. man tcsetattr
>
>Если интересно могу выслать пример.

Неплохим примером могут служить исходники stty(1):
~ % uname -rs
FreeBSD 5.3-RELEASE
~ % whereis stty
stty: /bin/stty /usr/share/man/man1/stty.1.gz /usr/src/bin/stty
~ %