More命令

more命令一般用于分页显示文件的内容,more会显示文件第一屏的内容,在屏幕的底部,more用反白字体显示文件的百分比,这时如果按空格键,文件的一下屏内容会显示出来,如果按回车键,显示的则是下一行,如果输入“ q ”,则是结束显示。

more命令的几种用法

第一种:

$ more filename

显示文件filename的内容。

第二种:

$ command | more

将command命令的输出分页显示。

第三种:

$ more < filename

从标准输入获取要分页显示的内容,而这时more的标准输入被重定向到文件filename。

more命令的工作流程

+-----------> 显示24行

  | +------> 输入操作,打印信息

  | | 可以输入回车键、空格键、q键

| +------> 输入回车键,打印一行

 + ---------> 如果空格键,打印24行

      如果是q键 ---> 退出

more命令的编写---版本1

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 
 4 #define PAGELEN 24
 5 #define LINELEN 512
 6 
 7 void do_more(FILE *);
 8 int see_more();
 9 
10 int main(int ac,char *av[])
11 {
12 
13     FILE *fp;
14     if(ac == 1)
15             do_more(stdin);
16     else
17         while(--ac)
18            if((fp = fopen(* ++av,"r")) != NULL)
19                {
20             do_more(fp);
21             fclose(fp);
22            }
23         else
24             exit(1);
25 
26     return 0;
27 }
28 
29 
30 void do_more(FILE *fp)
31 {
32     char line[LINELEN];
33     int num_of_lines = 0;
34     int see_more(),reply;
35 
36     while(fgets(line, LINELEN,fp))
37     {
38         if(num_of_lines == PAGELEN)
39         {
40             reply = see_more();
41             
42             if(reply == 0)
43             break;
44 
45             num_of_lines -= reply;
46         }
47         if(fputs(line,stdout) == EOF)
48         exit(1);
49         
50         num_of_lines++;
51     }
52 }    
53 
54 int see_more()
55 {
56     int c;
57     printf("\033[7m more?\033[m");
58     while((c = getchar()) != EOF)
59     {
60         if(c == 'q')
61         return 0;
62         if(c == ' ')
63         return PAGELEN;
64         if(c == '\n')
65         return 1;
66         
67     }
68     return 0;
69 }

更多相关文章

  1. 为什么Linux不需要磁盘碎片整理?——借以复习文件系统方面的知识
  2. Linux中的文件权限和用户组
  3. Linux学习之文件系统权限及表示
  4. linux 文件系统的管理 (硬盘) 工作原理
  5. Linux系统的文件传输工具RZSZ
  6. Linux:目录中的最新文件。
  7. 对于Linux创建链接时终目录和文件处理的认识
  8. Linux文件归档和解压缩
  9. 如何使用“tail -1 * / filename”拖尾多个文件的最后一行

随机推荐

  1. Linux Kernel and Android休眠与唤醒
  2. Using Ant to Automate Building Android
  3. 前言:Android进阶汇总(持续更新)
  4. 【Android】入门级连接网络示例: 网页浏览
  5. Android 学习记录-ImageView显示格式
  6. Android虚拟机大屏幕设置
  7. android - JNI NewStringUTF字串的釋放
  8. 全网最全的Android资源汇总
  9. Android中后台显示悬浮窗口的方法
  10. Android(安卓)Fragment 你应该知道的一切