cat这个工具在很多时候确实相当方便,它的功能就是文件的输入输出, 能将一个文件完整的重定向输出到另外一个文件中。
有时候它的操作对象是标准输入输出。比如想快速新建一个文件并往里面写入内容, cat > newfile ,输入完毕ctrl + d 即可。
下面是一个非常简单的类似于cat 工具的C程序,cp2 || 不过令我觉得奇怪的是,本来是用来输入输出文本文件的,可是遇到
了mp3、图像、这些文件也行。难道这些文件在表示方法上和文本文件是一样的?遇到EOF就表示文件结束了?
下面是代码, 贵在于积累和坚持 :)
/* Cat like, tiny code using C language */ #include <stdio.h> int main(int argc, char *argv[]) { FILE *ifp; FILE *ofp; void cp2file(FILE *, FILE *); if (1 == argc) cp2file(stdin, stdout); else { if ((ifp = fopen(argv[1], "r")) == NULL) { printf("open file: %s error\n", argv[1]); return 1; } if ((ofp = fopen(argv[2], "a+")) == NULL) { printf("open file: %s error\n", argv[2]); return 1; } cp2file(ifp, ofp); fclose(ifp); fclose(ofp); } return 0; } void cp2file(FILE *ifp, FILE *ofp) { int c; while ((c = getc(ifp)) != EOF) putc(c, ofp); }