home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 1: Amiga / FrozenFish-Apr94.iso / bbs / alib / d1xx / d168 / dillonstuff.lha / src / com / cmp.c < prev    next >
C/C++ Source or Header  |  1988-11-22  |  1KB  |  73 lines

  1.  
  2. /*
  3.  * CMP.C
  4.  *
  5.  *
  6.  * (C)Copyright 1986, Matthew Dillon, All Rights Reserved.
  7.  * Permission is granted to distribute for non-profit only.
  8.  *
  9.  *    comp file1 file2
  10.  *
  11.  *    Compare two files.  The program will tell you if two files compare
  12.  *    the same or, if not, where the error occured.
  13.  *
  14.  */
  15.  
  16. #include <stdio.h>
  17. #include <fcntl.h>
  18.  
  19. extern char *malloc();
  20.  
  21. #define BUFSIZE   16384
  22.  
  23. main(ac, av)
  24. char *av[];
  25. {
  26.     long f1, f2;
  27.     register short i, j, n;
  28.     char fail;
  29.     char *buf1, *buf2;
  30.     char *premature_eof = "premature EOF in %s (files compare to that point)\n";
  31.  
  32.     buf1 = malloc(BUFSIZE);
  33.     buf2 = malloc(BUFSIZE);
  34.     if (!buf1 || !buf2) {
  35.     puts("no memory");
  36.     exit(30);
  37.     }
  38.     fail = 0;
  39.     if (ac <= 2) {
  40.     puts ("V2.00 (c)Copyright 1986-1988 Matthew Dillon, All Rights Reserved");
  41.     puts ("cmp file1 file2");
  42.     exit(0);
  43.     }
  44.     f1 = open(av[1], O_RDONLY);
  45.     f2 = open(av[2], O_RDONLY);
  46.     if (f1 && f2) {
  47.     while (!fail && (i = read(f1, buf1, 256))) {
  48.         n = read(f2, buf2, i);
  49.         if (!bcmp(buf1, buf2, n))
  50.         fail = 5;
  51.         if (!fail) {
  52.         if (n == i)
  53.             continue;
  54.         fail = 5;
  55.         }
  56.     }
  57.     if (!fail && read(f2, buf2, 1))
  58.         fail = 5;
  59.     } else {
  60.     puts("Could not open both files");
  61.     fail = 20;
  62.     }
  63.     if (f1 >= 0)
  64.     close(f1);       /* f1 & f2 are either valid or NULL */
  65.     if (f2 >= 0
  66.     close(f2);
  67.     if (fail)
  68.     puts("Compare failed");
  69.     exit(fail);
  70. }
  71.  
  72.  
  73.