Back

#include<stdio.h>

int main(int argc, char *argv[])
{
  FILE *fp;
  void filecopy(FILE *, FILE *);
  char *prog = argv[0];

  if (argc==1) filecopy(stdin, stdout);
  else
     while (--argc > 0)
       if ((fp=fopen(*++argv, "r")) == NULL)
         {
           fprintf(stderr, "%s: can't open %s\n", prog, *argv);
           exit(1);
         }
       else
        {
          filecopy(fp, stdout);
          fclose(fp);
        }

  if (ferror(stdout))
    {
       fprintf(stderr, "%s: error writing stdout\n", prog);
       exit(2);
    }

   exit(0);

}


void filecopy(FILE *ifp, FILE *ofp)
 {
   int c;

   while ((c=getc(ifp)) != EOF)
     putc(c, ofp);
 }

Top