当前位置: 技术问答>linux和unix
关于字符的问题,UP 有分
来源: 互联网 发布时间:2015-02-19
本文导语: 在UNIX下输入口令时,怎样才能将输入的口令在屏幕上显示成(******)星号呢? 谢谢。 | struct termios term,termsave; ... tcgetattr(fileno(fp),&termsave);/*保存终端状态*/ term=termsave; term.c_lflag &= ~(...
在UNIX下输入口令时,怎样才能将输入的口令在屏幕上显示成(******)星号呢?
谢谢。
谢谢。
|
struct termios term,termsave;
...
tcgetattr(fileno(fp),&termsave);/*保存终端状态*/
term=termsave;
term.c_lflag &= ~(ECHO|ECHOE|ECHOK|ECHONL);/*禁止终端回显*/
tcsetattr(fileno(fp),TCSAFLUSH,&term);
...
可以在输入口令时禁止终端回显,若要显示'*'要做一些额外处理,
如每读入一个字符则打开回显putc一个'*',具体等测试成功后再贴出。
以上内容可参考《UNIX环境高级编程》第11章 终端I/O,264页
...
tcgetattr(fileno(fp),&termsave);/*保存终端状态*/
term=termsave;
term.c_lflag &= ~(ECHO|ECHOE|ECHOK|ECHONL);/*禁止终端回显*/
tcsetattr(fileno(fp),TCSAFLUSH,&term);
...
可以在输入口令时禁止终端回显,若要显示'*'要做一些额外处理,
如每读入一个字符则打开回显putc一个'*',具体等测试成功后再贴出。
以上内容可参考《UNIX环境高级编程》第11章 终端I/O,264页
|
curses库中提供的form可以实现这种功能,你只需要关闭相关field的相应选项就可以了。不过
使用form可能比较烦。
http://vcprogram.6to23.com
使用form可能比较烦。
http://vcprogram.6to23.com
|
unix是全双工的,登陆系统时echo关闭,所以不显示,试试修改那个负责登陆的login。
|
getpass
|
写个程序将键盘输入转化为字符"*"
|
由于出于安全方面的考虑,unix,linux.BSD 都 不会* 的个数。
|
兄弟,要使你登陆时的密码显示“*”好像要改系统底层源程序哦(我没这个能力);
但要使自己的程序显示这样,就不难了!
但要使自己的程序显示这样,就不难了!
|
尝试...
|
关注