#include <stdio.h> #include <stdlib.h> /* 实现了cat的查看文件和合并文件的功能 */ void file_copy(FILE *inFile, FILE *outFile) { int c=0; while((c=getc(inFile)) != EOF) putc(c, outFile); } int main(int argc, char *argv[]) { FILE *fp; FILE *fp2; if(argc == 3) //两个参数为合并文件功能 { if( ((fp = fopen(argv[1], "r")) != NULL) && ((fp2 = fopen(argv[2], "a")) != NULL) ) { file_copy(fp, fp2); fclose(fp); fclose(fp2); } } else if(argc == 2) //一个参数为查看文件功能 { while(--argc > 0) { if ((fp=fopen(*++argv, "r")) == NULL) { printf("Can't open file\n"); return 1; } else { file_copy(fp, stdout); fclose(fp); } } } else { printf("参数个数有误\n"); } return 0; }