home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / snip9707.zip / CHECKSUM.C < prev    next >
C/C++ Source or Header  |  1997-07-05  |  897b  |  43 lines

  1. /* +++Date last modified: 05-Jul-1997 */
  2.  
  3. /*
  4. **  CHECKSUM.C - Compute the checksum of a file
  5. **
  6. **  public domain demo by Bob Stout
  7. */
  8.  
  9. #include "crc.h"
  10.  
  11. unsigned checksum(void *buffer, size_t len, unsigned int seed)
  12. {
  13.       unsigned char *buf = (unsigned char *)buffer;
  14.       size_t i;
  15.  
  16.       for (i = 0; i < len; ++i)
  17.             seed += (unsigned int)(*buf++);
  18.       return seed;
  19. }
  20.  
  21. #ifdef TEST
  22.  
  23. #include <stdio.h>
  24.  
  25. main()
  26. {
  27.       FILE *fp;
  28.       size_t len;
  29.       char buf[4096], *file = "CHECKSUM.C";
  30.  
  31.       if (NULL == (fp = fopen(file, "rb")))
  32.       {
  33.             printf("Unable to open %s for reading\n", file);
  34.             return -1;
  35.       }
  36.       len = fread(buf, sizeof(char), sizeof(buf), fp);
  37.       printf("%d bytes read\n", len);
  38.       printf("The checksum of %s is %#x\n", file, checksum(buf, len, 0));
  39.       return 0;
  40. }
  41.  
  42. #endif /* TEST */
  43.