linux密码带星号,Linux下实现输入密码以星号显示

#include

#include

#include

#include

#include

#include

char Getch()

{

int c = 0;

int res = 0;

struct termios org_opts, new_opts;

res = tcgetattr(STDIN_FILENO, &org_opts); //用于获取与终端相关的参数

if(res == -1)

{

printf("tcgetattr error! Error code: %d,Error message: %s\n", errno, strerror(errno));

c = '\n';

return c;

}

memcpy(&new_opts, &org_opts, sizeof(new_opts));

new_opts.c_lflag &= ~(ICANON | ECHO | ECHOE | ECHOK | ECHONL | ECHOPRT | ECHOKE | ICRNL);

res = tcsetattr(STDIN_FILENO, TCSANOW, &new_opts); //用于设置终端参数

if(res == -1)

{

printf("tcsetattr error! Error code: %d,Error message: %s\n", errno, strerror(errno));

c = '\n';

return c;

}

c = getchar();

res = tcsetattr(STDIN_FILENO, TCSANOW, &org_opts);

if(res == -1)

{

printf("tcsetattr error! Error code: %d,Error message: %s\n", errno, strerror(errno));

c = '\n';

return c;

}

return c;

}

char *GetPasswd()

{

char *strRet = (char *)malloc(64);

memset(strRet, 0, 64);

unsigned char c;

int i = 0;

while ((c = Getch()) != '\n')

{

if (i<64 && isprint(c))

{

strRet[i++] = c;

putchar('*');

}

else if ((i>0) && (c == '\b'))

{

--i;

putchar('\b');

putchar(' ');

putchar('\b');

}

}

strRet[i] = '\0';

return strRet;

}

int main()

{

printf("\n输入的密码为:%s\n",GetPasswd());

return 0;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/550964.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux内核网络raw_cpu_add,深入理解Linux网络技术内幕-设备注册和初始化(四)

static void rollback_registered_many(struct list_head *head){struct net_device *dev, *tmp;BUG_ON(dev_boot_phase);ASSERT_RTNL(); //检查是否获取了rtnl互斥量list_for_each_entry_safe(dev, tmp, head, unreg_list) {/* Some devices call without registering* for i…

linux通过时间查询日志,linux按时间查询日志

在系统应用集中部署的时候&#xff0c;很多日志因为太多难以定位&#xff0c;获取某段时间的日志是对运维人员非常关键的事情。一、sed查看某时间段到现在的系统日志&#xff1a;sed -n /May 20 17/,$p /var/log/messages | less二、sed 截选时间段日志首先看一下日志的格…

telnet服务下载 Linux,linux telnet服务安装包

这是linux telnet服务安装包下载&#xff0c; telnet-client 客户端安装包、telnet-server服务端安装包和xinetd依赖包&#xff0c;本人在linux retHat 32位系统上亲自安装过&#xff0c;若您依旧安装不成功&#xff0c;没关系&#xff0c;在附赠.txt中&#xff0c;打开这个链接…

linux挂载硬盘的分区创建,Linux 新增硬盘、新建分区、格式化硬盘、挂载硬盘的操作...

今天学校有一台机器发现有块硬盘没有挂载&#xff0c;然后叫我挂载一下&#xff0c;这里记录一下 Linux 下新增硬盘分区、格式化硬盘、挂载硬盘的操作。查看当前硬盘首先我们查看一下当前的硬盘配置。使用命令sudo fdisk -l就可以看到目前的硬盘了。可以看到有块空的 sda(这里忘…

Win10 Linux GPT分区方案,win10+Ubuntu 20.04 LTS双系统安装(UEFI + GPT)(图文,多图预警)

win10 安装(已安装的略过)制作启动u盘插入U盘&#xff0c; 运行 rufus-3.10.exe&#xff0c;按照下面选择&#xff0c;然后点击开始&#xff0c;等待完成即可为Ubuntu安装空出分区此电脑->管理->磁盘管理&#xff0c;选择一个磁盘右键选择压缩卷&#xff0c;压缩出50G以上…

linux 动态库构造函数,Linux共享库全局构造函数的相互依赖性

操作系统Centos 5.6 i686 2.6.18-53.1.4.el5vm.gcc版本4.1.2 20080704(Red Hat 4.1.2-48)ld版本2.17.50.0.6-6.el5 20061020我以这种方式编译&#xff1a;gcc -c -fnon-call-exceptions -fexceptions -Wall -DUNICODE -D_UNICODE -D_REENTRANT -I.并以这种方式链接&#xff1a;…

linux ptrace 读内存,Linux高级调试与优化——ptrace

ptrace (process trace)#include long ptrace(enum __ptrace_request request, pid_t pid, void *addr, void *data);ptrace系统调用运行tracer进程监视和控制tracee进程的执行过程&#xff0c;检查和修改tracee进程的内存和寄存器值。ptrace主要用来实现端点调试和跟踪系统调用…

linux关闭4750 端口,【ubuntu分享帖】acer 4750G ubuntu安装后的一些设置

本帖最后由 love雨阳 于 2011-11-7 13:27 编辑本帖前提&#xff1a;已经成功安装ubuntu11.10 网卡驱动默认成功1.安装完之后&#xff0c;开机&#xff0c;进入ubunt 第一件事当然是联网,首先&#xff0c;确定你的网络链接方式&#xff0c;如果是路由器自动分配ip的那种应该不用…

linux自动异地备份,Linux本地加异地自动备份方案

创建脚本/root/script/backup.sh# 该脚本应用于10多台普通的Linux应用服务器&#xff0c;多年来从未出过差错。# 数据库备份较为特殊&#xff0c;这里不包含数据库备份。# 因为脚本中含有FTP密码&#xff0c;所以FTP仅给予写权限较为安全&#xff0c;FTP中的老备份的定期删除任…

linux软件中心替代,Ubuntu 16.04 LTS 将替换 Ubuntu 软件中心

Ubuntu 软件中心在 Ubuntu 16.04 LTS 被移除了。Xenial Xerus 桌面用户会发现非常熟悉的 Ubuntu Software Center 找不到了。GNOME 的软件应用 将会 – 根据当前的计划 – 作为基于 Unity 7 桌面的默认的包管理应用。GNOME 软件应用Ubuntu 将创建新插件来支持新 Software Cente…

linux脚本算术函数,Linux基础之bash脚本编程初级-变量与算术运算

什么是变量&#xff1f;变量最初来源于数学&#xff0c;指的是非固定的值可变化的数通常用拉丁字母表示。在计算机中变量它依旧指的是可变化的数&#xff0c;只不过表现形式有些变化。它指的是变量名所指向的内存空间。以下实验环境均在CentOS7.2进行变量的特点变量分强类型变量…

存储管理实验linux,07-存储管理器实验

S3C2440的存储控制器提供了访问外设所需要的信号&#xff0c;它有如下特性&#xff1a;支持大/小端字节(通过软件选择)&#xff1b;每个BANK的地址空间为128MB&#xff0c;总共1GB(8个BANK)&#xff1b;可编程控制的总线宽度(8/16&#xff0f;32bit)&#xff0c;BANK0只有两种位…

linux apache certbot,从操作系统软件包安装Certbot

Arch Linuxsudo pacman -S certbotDebian如果你运行Debian Buster或Debian testing/Sid&#xff0c;则可以通过以下命令轻松安装certbot软件包&#xff1a;sudo apt-get updatesudo apt-get install certbot如果你运行Debian Stretch&#xff0c;我们建议你使用Debian backport…

linux nginx 安装出错,Linux Nginx安装以及可能出现错误

Linux Nginx安装以及可能出现错误转载请标明出处 http://coderknock.com安装过程从 http://nginx.org/download/nginx-1.9.15.tar.gz下载nginx包(或者wget http://nginx.org/download/nginx-1.9.15.tar.gz直接在Linux上用命令下载)解压并转到目录下tar -zxvf nginx-1.9.15.tar.…

linux删除副本文件,RMAN不能删除控制文件副本解决

直接手动删除了一个控制文件的副本(通过RMAN备份的)&#xff0c;以后每次RMAN 备份都保如下内容RMAN> delete obsolete;RMAN 保留原則將會套用至命令RMAN 保留原則是設成冗餘 3使用通道 ORA_DISK_1刪除下列已不在使用的備份:類型 索引鍵 完成時間 檔…

linux fcntl 设置阻塞,Linux fcntl函数设置阻塞与非阻塞

转自http://www.cnblogs.com/xuyh/p/3273082.html用命令F_GETFL和F_SETFL设置文件标志&#xff0c;比如阻塞与非阻塞F_SETFL 设置给arg描述符状态标志,可以更改的几个标志是&#xff1a;O_APPEND&#xff0c; O_NONBLOCK&#xff0c;O_SYNC和O_ASYNC。命令字(cmd)F_GETFL和…

linux container框架,理解和配置LinuxContainerExecutor

最近在研究如何为Hadoop开启基于Kerberos的安全配置&#xff0c;经过千辛万苦配置好后本以为到了见证奇迹的时刻&#xff0c;但是卡在NodeManger无法启动&#xff0c;折磨的死去活来。经历了各种百度、google后依然无果&#xff0c;最终还是乖乖的回来细读Hadoop官方配置文档&a…

linux更新命令centos,CentOS 7.0命令更新新版特性

查看系统版本信息#uname -a#cat /etc/redhat-release升级所有包&#xff0c;改变软件设置和系统设置,系统版本内核都升级#yum -y update升级所有包&#xff0c;不改变软件设置和系统设置&#xff0c;系统版本升级&#xff0c;内核不改变#yum -y upgradeCentOS7中主机名的配置文…

linux bash and,linux bash shell中for的用法and示例

关于linux bash shell中的for语句在linux中shell是必不可少的一部分&#xff0c;但是在bash shell中有while&#xff0c;for&#xff0c;until等循环命令&#xff0c;今天就介绍一下关于for的一些用法。文中任何错误希望大佬们一一指出&#xff0c;不胜感激。bash shell中提供了…

mac利用vscode运行c语言程序,Mac下使用VScode编译配置C/C++程序详细图文教程

在mac上有时候需要编写一些c 或者 c的代码&#xff0c;如果使用 xcode&#xff0c;有时候就显得很笨重&#xff0c;而且运行起来很不方便。而微软提供了一个跨平台的编辑器visual studio code ,这个编辑器很轻量级&#xff0c;而且插件超多&#xff0c;你几乎可以在这个编辑器里…