unix/linux编程实践教程--more命令
来源:互联网 发布:博知教育 编辑:程序博客网 时间:2024/05/17 23:29
1. 简陋版本的more命令
#include <stdio.h>#define PAGELEN 24#define LINELEN 512void do_more( FILE * );int see_more( FILE * );int main( int ac, char **av ){FILE *fp;if ( ac == 1 )do_more( stdin );elsewhile ( --ac )if ( ( fp = fopen( *++av, "r" ) ) != NULL ){do_more( fp );fclose( fp );}else{exit( 1 );}return 0;}void do_more( FILE *fp ){charline[ LINELEN ];intnum_of_lines = 0;intsee_more( FILE * );int reply;FILE*fp_tty;fp_tty = fopen("/dev/tty", "r");if ( fp_tty == NULL )exit( 1 );while ( fgets( line, LINELEN, fp ) ){if ( num_of_lines == PAGELEN ){reply = see_more( fp_tty );if ( reply == 0 )break;num_of_lines -= reply;}if ( fputs( line, stdout ) == EOF )exit( 1 );num_of_lines++;}}int see_more( FILE *cmd ){intc;printf("\033[7m more?\033[m");while ( ( c = getc( cmd ) ) != EOF ){if ( c == 'q' )return 0;if ( c == ' ' )return PAGELEN;if ( c == '\n' )return 1;}return 0;}
可通过以下命令执行:
ls /bin | ./a.out
0 0
- unix/linux编程实践教程--more命令
- Unix/Linux编程实践教程(1)--实现more命令(C语言)
- unix/linux编程实践教程:who命令
- unix/linux编程实践教程:ls命令
- unix/linux编程实践教程:pwd命令
- Unix/Linux编程实践教程
- Unix/Linux编程实践教程
- Unix-linux编程实践教程
- 【Unix/Linux编程实践】 动手实现简单的more
- 《unix/linux编程实践教程》之管道
- unix/linux编程实践教程:学习stty
- unix/linux编程实践教程------学习笔记
- Unix/Linux编程实践教程 笔记一
- Unix/Linux编程实践教程–书评
- 《unix/linux编程实践教程》学习笔记:第二章 编写who,cp命令
- 《unix/linux编程实践教程》学习笔记:第八章 编写命令解释器sh
- linux编程实践2(实现more命令)
- 《unix/linux编程实践教程》之Shell编程一
- 【leetcode】merge-sorted-array
- 解决unity3d 多平台下完美本地文本文件读取的方法
- UNIX网络编程卷1 回射客户程序 UDP 超时设置
- HDU 3292 No more tricks, Mr Nanguo(佩尔方程,矩阵快速幂)
- poj 2887 Big String
- unix/linux编程实践教程--more命令
- POJ 3463 Sightseeing Dijkstra最短路&最短路-1的路径数(计数)
- makefile write_janseman99_1
- 看看别人家的孩子
- User has no SELECT privilege on V$SESSION(执行计划相关)
- python2 python3语法区别
- Python学习笔记(二)——NumPy
- 简易计算器制作
- 百度地图—提示错误Binary XML file line #76: Error inflating class com.baidu.mapapi.Mapview