欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

一起talk C栗子吧(第一百九十六回:C语言实例--DIY less命令五 )

程序员文章站 2023-08-29 17:25:58
看官们,我们对diy的less的介绍已经有四个章回了,这一回中我们对该命令以及前面四个章回进行一个总结。我觉得图形是最好的总结,接下来我们上个图和大家一来看看: 从上图中可以看出,我们整体的内容...

看官们,我们对diy的less的介绍已经有四个章回了,这一回中我们对该命令以及前面四个章回进行一个总结。我觉得图形是最好的总结,接下来我们上个图和大家一来看看:

一起talk C栗子吧(第一百九十六回:C语言实例--DIY less命令五 )

从上图中可以看出,我们整体的内容是三大块,前两块内容:“打开文件”和“显示文件”放到了一个章回中进行介绍。第三块内容中的“获取命令”和“判断命令”放到了一个章回中介绍,这块内容中最复杂的是响应命令,这部分内容又分成了三个小模块,我们分别用两个章回的内容对它们进行介绍。

通过上面的分析,我给大家理清了这几个章回的内容要点。大家写代码的时候,可以参考这个图形来进行,先把整体思路定下来了,然后再完善小的细节。这也算是一种解决问题的方法吧,我当时diy less命令的时候,就是使用这个方法来进行的。我再来个现身说法,当时实现“显示一个屏幕内容”的功能时就遇到了细节上的问题:在显示文件中的内容时可以使用一个循环,但是循环会把文件中所有的内容全部显示出来,这显然不符合less命令的要求,于是我才准备让它显示一个屏幕大小的内容,可是屏幕有多大呢?这就是一个细节上的问题,最后通过查阅资料解决了该问题,进而实现了“显示一个屏幕内容”的功能。

看官们,代码比较多,我就不列出来了,完整的代码放到了我的资源中,大家可以下载使用。在编译该程序的时候需要和其它文件一起编译,并且链接ncurses库,具体的编译命令如下:

gcc cat.c cd.c date.c less.c ls.c main.c main.h pwd.c -o diyshell -lncurses