当前位置:  技术问答>linux和unix

做linux下的程序,如何在从标准输入读密码时关闭回显?

    来源: 互联网  发布时间:2015-09-21

    本文导语:  如题 | {     struct termios origt;     struct termios new;     int            mode;     tcgetattr(STDIN_FILENO, &origt);     new = origt;     new.c_iflag &= ~(BRKINT | ICRNL);     new.c_lflag &= ~...

如题

|
{
    struct termios origt;
    struct termios new;
    int            mode;

    tcgetattr(STDIN_FILENO, &origt);
    new = origt;
    new.c_iflag &= ~(BRKINT | ICRNL);
    new.c_lflag &= ~(ECHO | ICANON | ISIG);
    tcsetattr(STDIN_FILENO, TCSANOW, &new);
    mode = fcntl(STDIN_FILENO, F_GETFL);
    mode |= O_NDELAY;
    fcntl(STDIN_FILENO, F_SETFL, mode);
}

|
#include 
#include 
#include 
#include 
#include 
#include 

int getPasswd(char *passwd)
{
        struct termio tbuf_old,tbuf;

        ioctl(0, TCGETA, &tbuf_old);
        ioctl(0, TCGETA, &tbuf);
        tbuf.c_lflag &=~ECHO;
        if (ioctl(0, TCSETAF, &tbuf) != 0)
      return;
        
        printf("please input passwd:");
        scanf("%s", passwd);
        ioctl(0, TCSETAF, &tbuf_old);
        return 0;
};

int main()
{
char passwd[8];

getPasswd( passwd );

printf("pass: %sn", passwd);

return 1;
}

|
使用getpass函数

欢迎访问我的个人网站 www.linuxc.net

    
 
 

您可能感兴趣的文章:

  • linux 繁体 汉字输入法 问题 linux 繁体 汉字输入法 问题
  • 在linux下如何用c实现类似于Linux登陆时输入密码的场景: 即输入密码时不在屏幕上显示所输入的内容
  • 在linux下终端C编程做登陆时界面时,怎么在输入密码时让它不显示输入内容,或者输入一个字符是*
  • linux怎么输入中文? 有没有中文输入法阿?
  • 谁知道什么软件能在linux下输入中文, 和下载中文输入法网址, 急,急,急!!!
  • SSH登陆linux,明明输入对的密码,还是弹出来要我输入密码?
  • linux下用ctrl+space怎么调不出输入法,我的系统也不能输入汉字
  • Virtul PC下的linux如何启动输入法?每次按ctr+space总是出现的是ms windows的输入法。
  • 我安装好了Linux后,用OpenOffice来写文档,不能输入汉字(有输入法,可是显示不出来!)
  • linux的命令包含有版本信息都很长,怎么样才能在Shell下输入的时候,只需要输入一部分,就可以出现整个命令!
  • 我装了中软Linux3.1,启动时要求输入用户名和口令,但安装时并没有提示指定用户名,所以现在输入用户名老是错误,不能进入系统,请问该怎
  • 急急,为什么装上智能陈桥for linux以后按CTRL+空格键不能调出输入法了,现在只能用输入英文了,希望大家给于帮助(redhat9),谢谢!
  • 求教,Linux下键盘输入的所有数据都会经过Linux内核吗???
  • 【新手请教】关于linux下的中文输入法?
  • --********-- linux下如何模拟键盘的输入 --************---
  • 很高兴加入LINUX。请问一个简单的问题:REDHAT LINUX7.3下的中文输入?怎么办?
  • linux终端下输入文件名的前几个字母,按下tab键就会被全。假如有两个以ab开头的文件,我输入ab,按下tab被全的是第一个文件,但我想要的是第二个文件可以怎
  • 关于linux下中文输入法的一些问题(在线等待)
  • 刚接触linux,遇到输入法问题
  • RedHat linux8.0为什么不能输入中文?
  • redhat linux/CentOS 6/7 关闭防火墙(iptables)命令,作用:CentOS 防火墙不关行不行?
  • 菜鸟求助:Linux 应用程序后台启动后关闭窗口程序退出
  • 请问linux下如何关闭 ftp的PASV mode?
  • Linux 自动关闭进程的问题!!
  • 在linux下怎样关闭端口映射
  • Linux 编程怎么样在程序开启一个程序,和关闭一个程序?
  • linux服务器上jboss怎么关闭,和启动?
  • linux安装问题--显示器自动关闭
  • 有关关闭机器的问题LINUX
  • linux下我想关闭ftp服务。应该杀死那个端口
  • linux中刚打开了eclipse就自动关闭是什么原因
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux修改root密码和linux忘记root密码后找回密码的方法
  • 可是安装的时候我没有设置用户和密码,现在每逢进入linux都要求输入用户名和密码
  • 一个超简单的问题:linux怎么用telnet方式加一个用户,并且设置密码?一个现存用户如何更改密码?在线等给分!!
  • 我的linux机怎么在登入时: 键入root,就直接登入进去了,并没有要我输密码,怎么改需要输入密码
  • 为什么原root密码,不能进入linux,显示密码是错误的?
  • linux修改用户密码出现问题,当密码修改为2011042109时,我可以用2011042108或2011042112等只要前8位一样后面任意输入都可以登录
  • 我用kylix上的sql connection连接同一网段的linux上的MYSQL,但总是提示用户及密码不下确,但实际上用户及密码肯定是正确的呀?
  • linux系统修改密码后ssh连接问题
  • 如何把linux下的root密码找回?
  • 关于在linux 中新增用户时的密码设置问题?
  • linux 用户组密码有何用
  • Linux下怎样将ftp服务的用户名和密码写在配置文件中使得在自动ftp脚本中免去认为输入用户名和密码
  • linux登录用户和密码忘记。。。如何是好?
  • 如何让linux接受简单密码?
  • 求助 linux 修改用户密码问题
  • 使用SSH修改linux密码的问题
  • 登陆LINUX时忘记密码如何登陆?快来帮帮我!
  • 使用ssh-keygen -t rsa建立密钥之后,可以实现两台linux主机之间的root用户免密码登陆。但无法实现两个普通用户之间免密码登陆
  • linux登录的用户名和密码丢失,急寻解决方法
  • linux 修改新建用户密码:passwd test
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux
  • linux命令大全详细分类介绍及常用linux命令文档手册下载


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3