看官們,我們對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