Linux more命令的简单实现
来源:互联网 发布:抓小三软件下载 编辑:程序博客网 时间:2024/05/17 08:14
1.more的作用
分页显示文件的内容。
more会显示文件的第一屏内容,在屏幕底部,用反白字体显示文件的百分比和more。这时如果按空格键,接着显示下一屏内容,如果按回车键,显示下一行内容,如果输入"q",结束显示,如果输入"h",显示帮助。
另:当空格键或"q"按下后,程序会立即响应,不需要按回车键。
2.more的用法
$ more filename
$ command | more
$ more < filename //从标准输入获取要分页显示的内容,而这时more的标准输入被重定向到文件filename
3.more的实现逻辑
------>显示一屏
------>打印[more?]
------>输入Enter,SPACE或者q
------>if Enter,显示一行
------>if SPACE,显示一屏
------>if q,退出
4.用到的主要内容
(1)fopen(filename, mode)函数:以mode方式打开文件filename
(2)fgets(buffer, length, fp)函数:从文件结构体指针fp中每次读取一行数据存入buffer指向的空间,每次最多读length-1
(3)fputs(buffer, fp)函数:将buffer内容输出到fp所指向的文件
(4)getchar()函数:从标准输入读取一个字符
(5)getc(fp)函数:从文件或标准输入读取一个字符,主要看fp是啥
(6)反白字符表示:[nm .........[m
(7)为啥需要用到/dev/tty设备描述文件?
当执行$command | more 时,标准输入已经被重定向到command命令的输出,这样more就会从同一个数据流中读取用户的输入,不需要从键盘输入了,这样就是有问题的。
而/dev/tty是键盘和显示器的设备描述文件,向这个文件写相当于显示在用户屏幕上,读相当于从键盘获取用户的输入,故用此来获得键盘输入。
5.待完善的功能
1).设置的一屏显示24行,未根据终端窗口大小动态调整
2).只处理了$more filename, $command | more ,未处理 $more < filename
3).$more filename1, filename2 时未明确显示filename1,filename2
4).未加入显示百分比
5).输入空格,q后必须按Enter键,程序才能得到输入
6).当屏幕上的文字上滚时,反白的more?也跟着上滚,正常情况下显示在屏幕最下方
6.参考书籍
《Unix/Linux编程实践》第一章
- linux编程more命令的简单实现
- Linux more命令的简单实现
- Linux中more命令的实现
- linux下more命令的实现
- Linux 下 more命令 的实现
- unix/linux more命令的实现
- linux more命令简单使用
- linux的more 命令
- Linux命令cat/vi/more/head/tail的简单使用
- 一个简单的linux命令——more
- Linux C编程——more命令的实现
- 【Unix/Linux编程实践】 动手实现简单的more
- linux下的more命令
- linux下的more命令
- linux下的more命令
- linux more命令的使用
- linux more命令的使用
- Linux的more命令使用
- JS 事件基础 边框拖拽
- Unity3d 人物控制器CharacterController
- 未能加载文件或程序集“”或它的某一个依赖。找到的程序集清单定义与程序集引用不匹配。
- 将Excel中的数据保存到Oracle中
- 浅谈数据中心(IDC)网络大二层技术
- Linux more命令的简单实现
- Xcode7 Https 在plist上添加NSAppTransportSecurity -NSAllowsAtbritraryLoads
- 读《符号逻辑讲义》
- Web项目中的Servlet映射
- eclipse(优化10) eclipse中vm文件样式修改
- jsp页面使用C标签对时间日期进行判断
- Java多线程机制
- 排序算法
- 文件重定向