mycat实现linux cat命令相似功能

/*
 * mycat.c
 * 
 * Copyright 2013 spark <spark@spark-vbox>
 * 
 */

#include <stdio.h>

int main(int argc, char **argv)
{
	FILE *fp;
	void filecopy(FILE *, FILE *);
	if(argc == 1){
			filecopy(stdin,stdout);
	}
	else{
		while(--argc>0){
			if( (fp=fopen(*++argv,"r")) ==NULL){
				printf("fail to open file %s.\n",*argv);
				return 1;
			}
			else{
				filecopy(fp,stdout);
				fclose(fp);
			}
		}
	}
	return 0;
}

void filecopy(FILE * from, FILE * to){
	int ch;
	while((ch=getc(from))!=EOF){
		putc(ch,to);
	}
}

 以上来自《C Programming Language》

总以为linux命令的实现较神秘微妙,以上实现和cat命令相似功能。感觉很简洁很美啊~!

 

 

 

posted @ 2013-05-09 15:01  庚武  Views(475)  Comments(0Edit  收藏  举报