自己編寫的more命令

2021-06-08 14:07:24 字數 1293 閱讀 8622

/*

重定向方面存在缺憾(重定向後沒有除錯完成)

stdin時非重定向可用read和write遮蔽部分部分

*/#include #include #include #include #include //lstat

#include //lstat

#include#define pagelen 24

#define linelen 1024

//#define buffsize 8192

void settermattr(); //設定終端屬性

void do_more(file *);

int see_more(file *);

int filesize; //檔案的大小

int readsize; //已經顯示的內容長度

struct termios ts,ots; //終端屬性

int main(int argc,char *argv)

else

else

else

} } }

tcsetattr(stdin_fileno,tcsanow,&ots);//將修改後的終端屬性復原,tcsanow表示修改立即生效

return 0;

}void do_more(file * fp)

/*

* 當用重定向符定向標準輸入時,不能分頁顯示,一下全部顯示出來。故屏掉

* if( fp ==stdin) //將標準輸入寫到標準輸出,read write 包含在unistd.h標頭檔案中

if(n<0)

}else

num_of_lines-=replay;

}if(fputs(line,stdout)==eof)

num_of_lines++;

}//}

}int see_more(file *cmd) /* new: accepts arg */

/* * print message, wait for response, return # of lines to advance

* q means no, space means yes, cr means one line

*/ if ( c == ' ' ) /* ' ' => next page */

if ( c == '\n' ) /* enter key => 1 line */

}return 0;

}void settermattr()

自己編寫more命令

more命令可以實現的功能是很豐富的,包括模式查詢。今天我們只是實現它的乙個基本功能 more 檔案列表 在螢幕正文顯示已讀的百分比 按下回車顯示下一行 按下空格顯示下一屏 按下q退出 按回車 空格 q時沒有回顯 這裡有幾個問題 要在螢幕正文顯示已讀的百分比,那我們必須先獲取檔案列表中各個檔案的長度...

自己編寫的linux ls命令

include include include include include include include include include include int aflag 0 int lflag 0 typedef char datatype typedef struct node link...

more命令 less命令

more命令是乙個基於vi編輯器文字過濾器,它以全螢幕的方式按頁顯示文字檔案的內容,支援vi中的關鍵字定位操作。more名單中內建了若干快捷鍵,常用的有h 獲得幫助資訊 enter 向下翻滾一行 空格 向下滾動一屏 q 退出命令 該命令一次顯示一屏文字,滿屏後停下來,並且在螢幕的底部出現乙個提示資訊...