33 lines
640 B
C++
33 lines
640 B
C++
|
/* (This program is from p. 154 of the Kernighan and Ritchie text */
|
|||
|
#include <stdio.h>
|
|||
|
|
|||
|
main(argc, argv) /* cat: concatenate files */
|
|||
|
int argc;
|
|||
|
char *argv[];
|
|||
|
{
|
|||
|
FILE *fp, *fopen();
|
|||
|
|
|||
|
if (argc == 1) /* no args; copy standard input */
|
|||
|
filecopy(stdin);
|
|||
|
else
|
|||
|
while (--argc > 0)
|
|||
|
if ((fp = fopen(*++argv, "r")) == NULL) {
|
|||
|
fprintf(stderr,
|
|||
|
"cat: can't open %s\n", *argv);
|
|||
|
exit(1);
|
|||
|
} else {
|
|||
|
filecopy(fp);
|
|||
|
fclose(fp);
|
|||
|
}
|
|||
|
exit(0);
|
|||
|
}
|
|||
|
|
|||
|
filecopy(fp) /* copy file fp to standard output */
|
|||
|
FILE *fp;
|
|||
|
{
|
|||
|
int c;
|
|||
|
|
|||
|
while ((c = getc(fp)) != EOF)
|
|||
|
putc(c, stdout);
|
|||
|
}
|
|||
|
p) /* cop
|