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命令的使用
1 命令格式 more dlfpcsu num pattern linenum file 2 命令功能 more命令和cat的功能一樣都是檢視檔案裡的內容,但有所不同的是more可以按頁來檢視檔案的內容,還支援直接跳轉行等功能。3 命令引數 n 從笫n行開始顯示 n 定義螢幕大小為n行 patter...
linux more命令的使用
linux more命令的使用 more命令,功能類似 cat cat命令是整個檔案的內容從上到下顯示在螢幕上。more會以一頁一頁的顯示方便使用者逐頁閱讀,而最基本的指令就是按空白鍵 space 就往下一頁顯示,按 b 鍵就會往回 back 一頁顯示,而且還有搜尋字串的功能 more命令從前向後讀...
linux more命令詳解
格式 more 選項 檔案 或者 more dlfpcsu num pattern linenum filenames.引數 p 顯示下一屏之前先清屏。c 作用同 p基本一樣。不同的是先顯示內容再清除其他舊資料 d 在每屏的底部顯示更友好的提示資訊 more xx press space to co...