linux c 密码 星号,Linux C : 登录密码星号 * 显示,包含能回退 backspace
在linux 下需要登录的一个小程序,不明文显示密码,而用星号*代替,并能让用户能回退。。。
网上差了些相关资料,特此总结下。。。。。。。
lee.h 需要包含的头文件 lee.h
#ifndef _LEE_H_ //Linux platform
#define _LEE_H_
#include
#ifndef STDIN_FILENO
#define STDIN_FILENO 0
#endif
int getch(void)
{
struct termios tm, tm_old;
int fd = STDIN_FILENO, c;
if(tcgetattr(fd, &tm) < 0)
return -1;
tm_old = tm;
cfmakeraw(&tm);
if(tcsetattr(fd, TCSANOW, &tm) < 0)
return -1;
c = fgetc(stdin);
if(tcsetattr(fd, TCSANOW, &tm_old) < 0)
return -1;
return c;
}
#else //WIN32 platform
#include
#endif
//------------------------------------------分割符-------------------------------------------------------------------------------------
//test.c
#include "lee.h"
#include ……//你自己的头文件
#define BACESPACE 127
#define ALARM 7
#define maxline 200
void get__pwd(char *buffer) //get pass word,putchar '*',replace of every char user input {
int i=0;
char letter;
char ch=getchar();
while(( i < maxline ) && (letter != '\r' ))
{
letter = getch();
if(letter==BACKSPACE) //when backspace
{
if(i>0)
{
buffer[i--]='\0';
// putchar(BACKSPACE);
putchar('\b');
putchar(' ');
// putchar(BACKSPACE);
putchar('\b');
continue;
}
else putchar(7); //alarm
}
else if( letter != '\r')
{
buffer[i++]=letter;
putchar('*');
}
}
buffer[i]='\0';
}
标红,注意的点:
1. BACKSPCE的ascii 码是跟终端属性有关的,对于ubuntu而言 ,打开终端的配置属性,找到兼容性选项,对于BACKSPACE,设为Ascii DEL ,则此时为127
2. 之前putchar(BACKSPACE)总是把0x7f给输出来了,达不到预期效果,改为putchar('\b') 就可以了
linux c 密码 星号,Linux C : 登录密码星号 * 显示,包含能回退 backspace相关推荐
- 服务器登录密码 被修改,服务器登录密码被人改
服务器登录密码被人改 内容精选 换一换 云堡垒机支持批量导出资源信息,用于本地备份资源配置,以及便于快速管理资源基本信息.为加强资源信息安全管理,支持加密导出资源信息.导出的主机资源文件中包含主机基本 ...
- 支付宝登录密码和淘宝登录密码一样吗
支付宝登录密码和淘宝登录密码一样吗? 不一样的.淘宝会员为一个账号,只有一个密码. 支付宝注册账号是邮箱账号来的,有一个登录密码.另外有一个支付密码.是你购物的时候最后付款用的. 我网上购物的年龄已经 ...
- 远程修改服务器登录密码,远程服务器修改登录密码
远程服务器修改登录密码 内容精选 换一换 本文介绍如何在裸金属服务器操作系统内部修改登录密码.建议优先在控制台上重置密码,如果不可以,再尝试在操作系统内部修改登录密码.此处以CentOS 7.5版本为 ...
- 怎么登录远程服务器修改密码,远程服务器修改登录密码
远程服务器修改登录密码 内容精选 换一换 本节操作以使用"Microsoft Remote Desktop for Mac"工具远程连接"Windows Server 2 ...
- 登录服务器客户端密码修改,客户端服务器登录密码问题
客户端服务器登录密码问题 内容精选 换一换 用户启用应用备份前,需先在本地服务器或虚拟机上更改安全组和安装客户端.本章节指导用户下载并安装客户端.目前仅支持64位操作系统的主机,暂不支持32位操作系统 ...
- 苹果用计算机知道密码,苹果电脑钥匙串登录密码忘了怎么办
1.mac钥匙串密码忘了怎么办 不明白你的具体意思,于是猜一下: 你要使用钥匙串的时候需要密码,这个是你的管理员账户密码,也基本就是开机密码. 你重装系统了,要使用iCloud的时候需要钥匙串安全码, ...
- vultr服务器win系统怎么重置密码,Windows RT 重置登录密码操作方法图文教程
今天店里有台 Asus Tablet,安装的系统是 Windows RT 平板系统,不知道被哪个顾客手贱设置了密码,所以需要重新初始化,在网上查了查,很多都是需要进系统里才可以重置密码或初始化电脑的. ...
- 2020无人用的邮箱和密码大全_Amazon后台登录密码错误!如何辨别账号是否被冻结?...
啊你绝对不知道 这里每天都会更新一些跨境电商实时动态. 卖家经验交流,跨境平台动态研究, 曝光销售技巧,转化技巧,站外引流的方法 亚马逊后台登录密码错误,如何辨别账号是否被冻结?很多人一看到自己账号登 ...
- 计算机怎样记住用户名和密码,电脑浏览器怎么记住登录密码 电脑浏览器记住登录密码方法【详解】...
浏览器,这是大家现在很熟悉也经常需要使用到的电脑工具.网上冲浪绝对少不了浏览器的配合,现在随着各种浏览器技术的进步,浏览器的功能也变得日趋的强大. 现在最给力的功能应该说是浏览器的自动记住密码的功能了 ...
- 登录无线商品服务器密码,wifi登录密码是什么_wifi登录密码初始密码是多少?-192路由网...
wifi登录密码是什么? wifi登录密码的初始密码是多少? 这2个问题,经常有用户在找鸿哥咨询.下面鸿哥通过这篇文章,来详细说明wifi登录密码的问题. wifi登录密码,严谨的说法,应该是叫做路由 ...
最新文章
- 不再使用快捷方式打开电脑软件!如何Windows+r 来打开一个你想要打开的软件软件?
- CopyCat 代码克隆检测发布,剑指开源软件抄袭
- Android从普通发送和接收短信到对短信进行拦截
- flutter 打开后闪退_vscode 扩展 pubspec 依赖快速打开文档
- java 给出两个整数a和b , 求他们的和。不用用运算符+
- 传输分析_密西根大学倪军谈信息传输与分析成本:5G的推广让该问题不复存在...
- Zuul使用Ribbon配置自动重试
- Linux系统移植学习
- Testbench编写
- 老版TP-Link路由器设置固定时间上网
- 安全研究 # Neural Network-based Graph Embedding for Cross-Platform Binary Code Similarity Detection
- 39 操作系统 18h-北京大学陈向群老师
- Java8集合过滤操作
- 电商十大暴利产品排名
- 【VMware】Ubunt 20.04时间设置
- Latex学习笔记(二)各标题的大小设置
- 深度学习Week14-yolov5s.yaml文件解读(YOLOv5)
- Windows XP操作系统自动关机的实现
- ai人工智能的本质和未来_人工智能手中的网络安全的未来
- SpringCloud微服务实战——搭建企业级开发框架(四十八):【移动开发】整合uni-app搭建移动端快速开发框架-使用第三方UI框架
热门文章
- Server的Transfer和Response的Redirect
- Linux内存管理:Linux 可加载内核模块剖析:2.6 内核透视图
- html-webpack-template, 一个更好的html web service插件
- Python学习笔记(matplotlib篇)--多图figure
- VCL从RES中读取皮肤
- 17秋 SDN课程 第五次上机作业
- python:configparser模块
- Wamp在重新装机后不想配置
- 【原】GitHub使用教程
- 探讨 .NET 语言的 using statement 与资源释放