home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 10 / Fresh_Fish_10_2352.bin / useful / util / edit / mg / src.lzh / tools / cat.c next >
C/C++ Source or Header  |  1990-05-23  |  604b  |  38 lines

  1. /* (This program is from p. 154 of the Kernighan and Ritchie text */
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4.  
  5. void
  6. filecopy(FILE *fp)    /* copy file fp to standard output */
  7. {
  8.     int c;
  9.  
  10.     while ((c = getc(fp)) != EOF)
  11.     putc(c, stdout);
  12. }
  13.  
  14. void
  15. main(int argc, char **argv)    /* cat: concatenate files */
  16. {
  17.     FILE *fp;
  18.  
  19.     if (argc == 1) /* no args; copy standard input */
  20.      filecopy(stdin);
  21.     else
  22.      while (--argc > 0)
  23.         if ((fp = fopen(*++argv, "r")) == NULL) {
  24.         fprintf(stderr,
  25.             "cat: can't open %s\n", *argv);
  26.         exit(1);
  27.         } else {
  28.         filecopy(fp);
  29.         fclose(fp);
  30.         }
  31.     exit(0);
  32. }
  33.  
  34.  
  35.  
  36.  
  37.  
  38.