Beginning Linux Programming 笔记(五)终端
来源:互联网 发布:手机怎样收藏淘宝店铺 编辑:程序博客网 时间:2024/05/17 06:19
在第四章中,我们简单了解了Linux的编程环境,第五章会进一步了解这个我们无时不刻使用的编程环境——终端。在这个终端上面,我们使用着Linux的强大功能,软件安装,卸载,运行,调试。当写好的程序在这个终端上跑的时候,是否有这么一个疑问:我们能不能控制终端的行为,控制它输入输出时的各种行为与处理方式。
答案是可以的,这就是我们下面要讲的Linux终端。
说终端,首先要从终端命令说起,对于我们平常使用的命令行工具,究竟它们是如何实现那些字符读取控制流程的。第四章讲过可以使用使用main参数去读取输入字符串,用getopt()去提取选项与参数,下面就说说菜单控制的常用方法吧。
首先是定义一个菜单:
然后定义一个函数来控制选择,这个函数可以过滤掉错误的选择,提示重新输入,返回值是输入的有效值(菜单中有定义的字母)。
int getchoice(char *greet, char *choices[]);
具体实现代码如下:
对于终端的控制,主要是通过termios.h这个文件的去调用和处理的。有一个结构体 termios 存储终端的属性,通过修改这个属性,可以修改终端的行为。对于一个终端的控制,分为五个方面: 输入、输出、控制、本地(我也没搞清楚这个定义)、特殊控制字符,他们分别对应结构体里面的一项。
termios结构体如下:
对termios的操作有下面两个函数:
#include <termios>
int tcgetattr(int fd, struct termios *termios_p); //读取属性
int tcsetattr(int fd, int actions, const termios *termios_p); //设置属性
下面举一个简单的例子,通过控制终端的属性来使输入密码时不让终端把字符打印出来:
其实个人觉得终端控制时比较底层的,开发中应该是比较少用到终端控制的这些东西,现代的UI提供了比较简单抽象的操作。所以我也没有刨根问底,也只是简单地看了这一个章节。上面也只是很简单做了一个介绍,讲得不对的地方,希望各位多多指教。
- Beginning Linux Programming 笔记(五)终端
- Beginning Linux Programming 笔记(六)使用curses管理基于文本的终端
- Beginning Linux Programming 笔记(七)数据管理
- Beginning Linux Programming 笔记(四)Linux编程环境
- Beginning Linux Programming 笔记(一) 新的开始
- Beginning Linux Programming 笔记(二) shell编程
- Beginning Linux Programming 笔记(三) 文件处理
- 《Beginning Linux Programming》读书笔记(二)
- 《Beginning Linux Programming》读书笔记(四)
- 《Beginning Linux Programming》读书笔记(三)
- 《Beginning Linux Programming》读书笔记(二)
- 《Beginning Linux Programming》读书笔记(一)
- 《Beginning Linux Programming》读书笔记(序)
- Beginning Linux Programming
- Beginning Linux Programming, Third Edition
- Beginning Linux Programming Third Edition
- Beginning Linux Programming chapter 3
- Beginning Linux Programming chapter 4
- 特化 偏特化
- Web开发/设计人员应当知道的15个网站
- JBOSS下配置MYSQL数据源
- uchome中相册的处理,space_album.php解析(建议用editplus打开)
- Android学习笔记(1)
- Beginning Linux Programming 笔记(五)终端
- hibernate jpa 注解 @Temporal(TemporalType.DATE) 格式化时间日期,页面直接得到格式化类型的值
- 使用原生的javascript进行字符的四则运算。
- 使用原生的javascript进行字符的四则运算。
- 拯救半导体产业——评估日地震对半导体冲击
- 使用原生的javascript进行字符的四则运算。
- 使用原生的javascript进行字符的四则运算。
- 策略模式
- highcharts快速入门