一起talk C栗子吧(第一百七十回:C语言实例--关闭终端中的回显功能一)



各位看官们,大家好,上一回中咱们说的是再谈内置宏的例子,这一回咱们说的例子是:关闭终端中的回显功能 。闲话休提,言归正转。让我们一起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
hello
input is : hello

--- ECHO function is closed ---
please input some charaters
input is : world          //关闭回显功能后看不到输入的内容,该内容是printf()函数输出的

各位看官,关于关闭终端中回显功能的例子”咱们就说到这里。欲知后面还有什么例子,且听下回分解 。


时间: 2024-09-30 06:45:56

一起talk C栗子吧(第一百七十回:C语言实例--关闭终端中的回显功能一)的相关文章

一起talk C栗子吧(第一百七十四回:C语言实例--关闭终端中的缓冲功能二)

各位看官们,大家好,上一回中咱们说的是关闭终端中缓冲功能的例子,这一回咱们继续说该例子.闲话休提,言归正转.让我们一起talk C栗子吧! 看官们, 我们在上一回中介绍了如何关闭终端中的缓冲功能,当时是借助系统命令stty实现该功能的,这一回中我们将介绍另外一种关闭终端中回显功能的方法.该方法是通过终端的termios编程接口来操作终端的.关于termios接口的介绍和编程接口,我们在一百七十一回中介绍过了,因此,我们直接介绍如何通过termios编程接口来关闭终端缓冲功能. 下面是详细的操作步

一起talk C栗子吧(第一百七十五回:C语言实例--获取当前终端的行数和列数)

各位看官们,大家好,上一回中咱们说的是关闭终端中缓冲功能的例子,这一回咱们说的例子是:获取当前终端的行数和列数 .闲话休提,言归正转.让我们一起talk C栗子吧! 看官们,我们在前面章回中介绍了termios相关的信息,以及termios提供的编程接口,通过这些接口可以操作终端,今天我们再介绍一些操作终端的编程接口,通过这些接口可以获取当前终端的行数和列数,这便是我们今天的主题. int setupterm(char *term, int fd, int *errret); 该函数用来修改当前

一起talk C栗子吧(第一百七十九回:C语言实例--字符和字符串输出函数二)

各位看官们,大家好,上一回中咱们说的是字符和字符串输出函数的例子,这一回咱们继续说该例子.闲 话休提,言归正转.让我们一起talk C栗子吧! 看官们,我们在上一回中介绍了字符和字符串输出函数的用法,満篇都是理论,古语云:纸上得来终觉浅,绝知此事要躬行.这一回中我们要把这些纸上得来理论应用于实践中,让我们一起动手去实践吧. 接下来,我们将通过具体的代码来说明如何使用字符输出函数,以及使用时的注意事项: int main() { char ch = 'a'; char *str = "hello

第一百七十四节,jQuery,Ajax进阶

jQuery,Ajax进阶 学习要点: 1.加载请求 2.错误处理 3.请求全局事件 4.JSON 和 JSONP 5.jqXHR 对象 在 Ajax 课程中,我们了解了最基本的异步处理方式.本章,我们将了解一下 Ajax 的 一些全局请求事件.跨域处理和其他一些问题. 一.加载请求 在 Ajax 异步发送请求时,遇到网速较慢的情况,就会出现请求时间较长的问题.而超 过一定时间的请求,用户就会变得不再耐烦而关闭页面.而如果在请求期间能给用户一些提 示,比如:正在努力加载中...,那么相同的请求时

第一百七十九节,jQuery-UI,知问前端--按钮 UI

jQuery-UI,知问前端--按钮 UI 学习要点: 1.使用 button 按钮 2.修改 button 样式 3.button()方法的属性 4.button('action', param) 5.单选.复选按钮 按钮(button),可以给生硬的原生按钮或者文本提供更多丰富多彩的外观.它不单单 可以设置按钮或文本,还可以设置单选按钮和多选按钮. 一.使用 button 按钮 使用 button 按钮 UI 的时候,不一定必须是 input 按钮形式,普通的文本也可以设置成 button

第一百七十五节,jQuery,工具函数

jQuery,工具函数 学习要点: 1.字符串操作 2.数组和对象操作 3.测试操作 4.URL 操作 5.浏览器检测 6.其他操作 工具函数是指直接依附于 jQuery 对象,针对 jQuery 对象本身定义的方法,即全局性 的函数.它的作用主要是提供比如字符串.数组.对象等操作方面的遍历. 一.字符串操作 在 jQuery 中,字符串的工具函数只有一个,就是去除字符串左右空格的工具函数: trim()去掉字符串两边空格 var str = ' jQuery '; alert(str); al

第一百七十六节,jQuery,插件

jQuery,插件 学习要点: 1.插件概述 2.验证插件 3.自动完成插件 4.自定义插件 插件(Plugin)也成为 jQuery 扩展(Extension),是一种遵循一定规范的应用程序接口编 写出来的程序.目前 jQuery 插件已超过几千种,由来自世界各地的开发者共同编写.验证 和完善.而对于 jQuery 开发者而言,直接使用这些插件将快速稳定架构系统,节约项目成 本. 一.插件概述 插件是以 jQuery 的核心代码为基础,编写出复合一定规范的应用程序.也就是说,插 件也是 jQu

第一百七十八节,jQuery-UI,知问前端--对话框 UI

jQuery-UI,知问前端--对话框 UI 学习要点: 1.开启多个 dialog 2.修改 dialog 样式 3.dialog()方法的属性 4.dialog()方法的事件 5.dialog 中使用 on() dialog()方法,将指定区块实现对话框功能 一.开启多个 dialog 我们可以同时打开多个 dialog,只要设置不同的 id 即可实现. $('#reg').dialog(); $('#login').dialog(); 二.修改 dialog 样式 在弹出的 dialog

一起talk C栗子吧(第一百六十九回:C语言实例--再谈内置宏)

各位看官们,大家好,上一回中咱们说的是C语言中的布尔–bool类型的例子,这一回咱们说的例子是:再谈内置宏 .闲话休提,言归正转.让我们一起talk C栗子吧! 看官们,我们在第一百二十四回中介绍了C语言中的内置宏,当时介绍了常用的内置宏_LINE_和_FILE_.并且介绍了如何使用它们来输出它们所在位置的行号和所在的文件名.大家都知道,这两个内置宏经常被用来在文件中添加调试信息.因为我们写的程序难免会有错误,所以需要对程序进行调试.在文件中加入内置宏后,我们通过调试可以快速地找到错误发生在哪个