在linux/Unix命令行下执行一个程序,将输入以*号回显出来,类似于登录时输入密码以*代替。
(Windows下很好实现,可以结合使用getch()和putchar(),但是getch()不是标准C函数,linux/Unix下没有,需要写一个函数实现getch()),好了直接上代码
#include <stdio.h>
#include <termios.h>
#include <unistd.h>
#include "Base64.c" //Base64编码程序
int getch(void);
main()
{
char str1[20],str2[60];
char ch;
int i=0;
printf("Please enter your password: ");
while((ch=getch())!=13 ) //按回车键退出
{
str1[i++]=ch;
putchar('*');
}
str1[i]='\0';
printf("\n Your input is: %s\n",str1);
strcpy(str2,base64_encode(base64_encode(str1)));
printf("Encoding string is: %s\n",str2);
}
//参考http://blog.csdn.net/liuchao35758600/article/details/6419499
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;
if(c == 3) exit(1); //按Ctrl+C结束退出
return c;
}
有兴趣可以研究下Unix下的一个头文件curses.h,贴一个网站大家看下
更正下:改方法只能实现Linux下的星号显示,对于Unix会有点问题!谢谢
分享到:
相关推荐
对于“网络经典命令行”,这通常指的是在各种操作系统环境下(如Windows、Linux或Unix等)用于网络诊断、配置和监控的一系列命令。这些命令能帮助我们快速地获取网络信息、检查连接状态、跟踪数据包以及解决网络问题...
4. **控制台I/O**:在命令行环境下,键盘输入和屏幕输出通常通过标准输入/输出流(stdin, stdout)进行。在C语言编程中,我们可以使用`stdio.h`库中的函数,如`scanf()`和`printf()`来操作这些流。 5. **事件驱动...
在本实验中,学生将通过使用C或C++语言在Linux命令环境下构建一个简单的shell程序,从而深入理解和掌握shell程序的基本功能以及Unix/Linux系统编程。实验主要包括以下几个方面: 1. **基本任务1**:实现一系列基础...
在没有图形用户界面(GUI)的情况下,命令行工具提供了高效、强大的网络管理能力。本文将深入探讨网络命令行的一些常用命令和应用场景。 1. **ping**:这是一个基础的网络诊断命令,用于检查主机之间的网络连通性。...
【作品名称】:基于 C++实现的Linux系统下多进程的创建与通信 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】: 目的与...
3. **脚本调试**:使用`set -x`开启命令行回显,便于调试脚本。 ### 七、Linux内核与驱动程序 1. **内核版本**:Linux内核版本标识了系统的稳定性和功能,如`uname -a`查看当前内核信息。 2. **模块加载**:某些...
12. **sudo** (在Linux/Unix):以超级用户权限执行命令,确保安全操作,例如更新系统或安装软件。 以上只是部分网络经典命令,掌握这些命令可以帮助初学者快速了解和解决网络问题。通过实践和深入学习,可以更有效...
Linux操作系统是基于Unix的操作系统,广泛应用于服务器、嵌入式设备和桌面环境中。它以其开源、免费、稳定和高效的特点受到全球开发者的喜爱。在学习Linux时,掌握Shell编程是至关重要的,因为Shell是Linux系统中的...
在Linux和Unix环境中,Bash shell是常用的命令行解释器,用于执行脚本和交互式命令。当编写Bash脚本时,有时我们需要确保用户的密码输入过程是安全的,即输入的密码不会在屏幕上显示出来,以免被他人窥探。在这样的...
- **Traceroute(Unix/Linux)**:Unix和Linux环境下的命令行工具,同样基于TTL机制。 - **mtr**:结合了traceroute和ping功能的工具,提供持续的追踪和统计信息。 总的来说,路由追踪是网络诊断的重要手段,而...
DOS(Disk Operating System)命令是早期个人计算机中广泛使用的命令行接口,虽然在现代操作系统中已经不再主流,但它仍然是学习计算机基础和网络管理的重要部分。以下将详细介绍标题和描述中提到的八个必须掌握的...
5. **Tracert 命令**: Tracert(Windows系统中)或traceroute(Unix/Linux系统中)是实现路由追踪的命令行工具,它发送具有递增TTL值的UDP或ICMP数据包,从而收集沿途路由器的信息。 6. **程序设计**: 文档可能详细...
- 使用批处理文件(Windows)或shell脚本(Linux/Unix)组合多个命令,实现网络管理自动化。 ``` # Windows批处理示例 @echo off ping www.example.com > ping_results.txt tracert google....
在Unix/Linux系统中,使用标准的socket API。 3. **ICMP报文构造**:理解ICMP报文结构,包括类型、代码、校验和、数据等字段。ping程序需要构造合适的ICMP回显请求报文,并计算校验和。 4. **数据包发送与接收**:...
在IT领域,Linux和Unix操作系统以其稳定性和可定制性而受到广泛的欢迎,而Shell作为它们的命令行解释器,更是程序员和系统管理员的得力工具。"LINUX与UNIX SHELL编程指南"这本书旨在帮助读者深入理解Shell编程,提高...
MiniCom 是一个小型、功能强大的命令行终端模拟器,尤其适用于Linux和Unix系统。它作为一个轻量级的通信工具,允许用户通过串行端口进行数据传输,进行远程控制和诊断工作。在本文中,我们将深入探讨MiniCom的使用、...
5. **ifconfig**:在Unix/Linux系统中,ifconfig用于配置网络接口,如查看IP地址、子网掩码、广播地址等。Windows系统中类似的功能可以通过"ipconfig"实现。 6. **telnet**:这是一种远程登录协议,允许用户通过...
- `set -v`开启命令行回显,显示脚本中未执行的每一行。 - `set -e`使脚本在遇到错误时立即停止。 **常见Shell内置命令** - `cd`:改变当前工作目录。 - `pwd`:显示当前工作目录。 - `echo`:打印文本到标准输出。...
4. **错误处理与调试**:`set -e`使脚本在遇到错误时立即退出,`set -x`开启命令行回显,便于调试。 5. **输入/输出重定向**:脚本可以使用`, `>`, `>>`操作符重定向输入和输出,还可以通过`exec`命令改变脚本的...