一起talk C栗子吧(第一百七十回:C语言实例--关闭终端中的回显功能一)
来源:互联网 发布:大数据的未来前景 编辑:程序博客网 时间:2024/03/29 15:23
各位看官们,大家好,上一回中咱们说的是再谈内置宏的例子,这一回咱们说的例子是:关闭终端中的回显功能 。闲话休提,言归正转。让我们一起talk C栗子吧!
看官们,我们今天介绍的是关闭终端中的回显功能,首先介绍一下什么是回显功能。当我们在终端中输入字符时终端马上就会显示我们输入的字符,这就是回显功能。我想这样的操作,大家已经司空见惯了,只是不知道它还有一个专业的名字:回显。
回显给我们带来了很多方便,比如我们可以及时看到自己输入到终端中的内容,而且当输入的内容有错误时还可以进行修改。这时有看官说:真是很好!很强大!简直就是完美!哈哈,不要说的这么绝对呀,有时候我们也不想使用回显,比如我们输入密码的时候,就不想使用回显,以免其他人看到自己的密码。其实在Linux系统中也有这样的情况,比如,执行sudo命令时需要输入root的密码,这个时候终端关闭了回显功能,那么终端是如何关闭回显功能的呢?这便是我们今天的主题。
有一个叫作stty的命令,可以显示或者修改终端的设置,我们可以通过该命令来关闭终端的回显功能,具体的命令是:
- stty -echo //关闭终端的回显功能
- stty echo //打开终端的回显功能
光说不练,不是我们的风格,接下来我们通过具体的例子来演示一下:
talk8$ stty -echo //输入命令,这时有回显功能,因为我们可以看到输入的命令 //执行命令后,关闭了回显功能,我们在终端中输入命令date,然后执行该命令talk8$ 2016年 07月 02日 星期六 20:35:01 CST //执行date命令后的结果 //输入命令stty echo,这时回显功能被关闭,看不到输入的命令talk8$ talk8$ //执行打开回显命令后的结果
明白该命令后,我们看看如何在C程序中使用该功能。大家还记得我们前面章回中介绍过的system()
函数吗?我们可以通过该函数在C程序中执行终端命令。接下来我们通过具体的代码来演示该函数的用法:
system("stty -echo"); // close the ECHO functoin if(NULL != fgets(buf,BUFSIZ,stdin)) printf("input is : %s ",buf); system("stty echo"); // open the ECHO function
看官们,以上是核心代码,完整的代码放到了我的资源中,大家可以点击这里下载使用。因为关闭终端中的回显功能后,我们看不到屏幕上的内容,只通过文字表达不一定能达到很好的效果,所以建议大家下载该程序,并且自己编译和运行,实实在在体会一下关闭回显功能后的操作。
下面是程序的运行结果,请大家参考:
--- ECHO function is open ---please input some charaters helloinput is : hello--- ECHO function is closed ---please input some charaters input is : world //关闭回显功能后看不到输入的内容,该内容是printf()函数输出的
各位看官,关于关闭终端中回显功能的例子”咱们就说到这里。欲知后面还有什么例子,且听下回分解 。
- 一起talk C栗子吧(第一百七十回:C语言实例--关闭终端中的回显功能一)
- 一起talk C栗子吧(第一百七十一回:C语言实例--关闭终端中的回显功能二)
- 一起talk C栗子吧(第一百七十二回:C语言实例--关闭终端中的回显功能三)
- 一起talk C栗子吧(第一百七十三回:C语言实例--关闭终端中的缓冲功能一)
- 一起talk C栗子吧(第一百七十四回:C语言实例--关闭终端中的缓冲功能二)
- 一起talk C栗子吧(第一百六十七回:C语言实例--控制终端字符颜色)
- 一起talk C栗子吧(第一百六十五回:C语言实例--C语言中的常量)
- 一起talk C栗子吧(第一百六十八回:C语言实例--C语言中的布尔--bool类型)
- 一起talk C栗子吧(第一百三十七回:C语言实例--查看环境变量)
- 一起talk C栗子吧(第一百四十五回:C语言实例--socket概述)
- 一起talk C栗子吧(第一百四十六回:C语言实例--socket属性)
- 一起talk C栗子吧(第一百五十五回:C语言实例--获取socket通信地址)
- 一起talk C栗子吧(第一百六十四回:C语言实例--const关键字)
- 一起talk C栗子吧(第一百六十六回:C语言实例--大小写字符转换)
- 一起talk C栗子吧(第一百九十回:C语言实例--文件定位三 )
- 一起talk C栗子吧(第一百三十五回:C语言实例--exec系列函数一)
- 一起talk C栗子吧(第一百三十八回:C语言实例--文件操作:基于文件描述符一)
- 一起talk C栗子吧(第一百四十九回:C语言实例--socket通信接口一)
- 求一个二叉树是否为另一个二叉树的子树
- Stanford-parser依存句法关系解释
- 顺序存储的二叉树的最近的公共祖先问题
- 挑战杯日记—数据采集与无线通讯
- PHP数组占用很大内存的分析
- 一起talk C栗子吧(第一百七十回:C语言实例--关闭终端中的回显功能一)
- OpenWrt分区
- Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例
- 记一些好书
- CentOS 6.5 64位安装cvuqdisk-1.0.7-1.rpm 报错
- Python 面试题(上)
- PHP in_array的性能问题
- Python操作splite3的例子
- 【折腾日记GEN8_3】VMware vSphere Client的安装