Итак, я перебираю некоторый код для файлового ввода-вывода на C и запутался в одной строке временной функции cat.
Я в основном запутался в основной строке:
void filecopy(FILE *, FILE *);
Мы не указываем имена файлов, которые будут переданы для ifp и ofp, поэтому я не уверен, что делает эта строка.
/* filecopy: copy file ifp to ofp */
void filecopy(FILE *ifp, FILE *ofp) {
int c;
while((c = getc(ifp)) != EOF){
putc(c, ofp);
}
}
/* cat: concatenate files, version 1*/
int main(int argc, char **argv) {
FILE *fp;
void filecopy(FILE *, FILE *);
if(argc == 1){ /*no args: copy standard input */
filecopy(stdin, stdout);
}else{
while(--argc > 0){
if((fp = fopen(*++argv, "r")) == NULL){
printf("cat: can't open %s\n", *argv);
return 1;
} else{
filecopy(fp, stdout);
fclose(fp);
}
}
}
return 0;
}