一起talk C栗子吧(第一百九十六回:C语言实例--DIY less命令五 )
程序员文章站
2023-08-29 17:25:58
看官们,我们对diy的less的介绍已经有四个章回了,这一回中我们对该命令以及前面四个章回进行一个总结。我觉得图形是最好的总结,接下来我们上个图和大家一来看看:
从上图中可以看出,我们整体的内容...
看官们,我们对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
推荐阅读
-
一起talk C栗子吧(第一百八十四回:C语言实例--在printf函数中设置输出宽度三)
-
一起talk C栗子吧(第一百九十六回:C语言实例--DIY less命令五 )
-
一起talk C栗子吧(第一百四十三回:C语言实例--文件操作:基于文件指针三)
-
一起talk C栗子吧(第一百三十九回:C语言实例--文件操作:基于文件描述符二)
-
一起talk C栗子吧(第一百三十八回:C语言实例--文件操作:基于文件描述符一)
-
一起talk C栗子吧(第七十九回:C语言实例--父进程与子进程)
-
一起talk C栗子吧(第一百一十八回:C语言实例--线程死锁二)
-
一起talk C栗子吧(第一百七十五回:C语言实例--获取当前终端的行数和列数)
-
一起talk C栗子吧(第一百零一回:C语言实例--使用信号量进行进程间同步与互斥二)
-
一起talk C栗子吧(第一百零六回:C语言实例--生产者与消费者问题二)