home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / bsd_srcs / sys / tests / fstests / readchk.c < prev    next >
Encoding:
C/C++ Source or Header  |  1991-01-17  |  751 b   |  44 lines

  1. #define BUFSIZ 4096
  2.  
  3. main(argc, argv)
  4.     int argc;
  5.     char *argv[];
  6. {
  7.     int buf[BUFSIZ / sizeof(int)];
  8.     int i, j, k;
  9.  
  10.     if (argc != 2) {
  11.         printf("Usage: readchk file\n");
  12.         exit(1);
  13.     }
  14.     j = creat(argv[1], 0666);
  15.     if (j < 0) {
  16.         perror(argv[1]);
  17.         exit(2);
  18.     }
  19.     for (i = 0; i < 2048; i++) {
  20.         for (k = 0; k < BUFSIZ / sizeof(int); k++)
  21.             buf[k] = i + k;
  22.         if (write(j, buf, BUFSIZ) != BUFSIZ) {
  23.             perror("write");
  24.             exit(3);
  25.         }
  26.     }
  27.     close(j);
  28.     j = open(argv[1], 0);
  29.     if (j < 0) {
  30.         perror(argv[1]);
  31.         exit(4);
  32.     }
  33.     for (i = 0; i < 2048; i++) {
  34.         if (read(j, buf, BUFSIZ) != BUFSIZ) {
  35.             perror("read");
  36.             exit(5);
  37.         }
  38.         for (k = 0; k < BUFSIZ / sizeof(int); k++)
  39.             if (buf[k] != i + k)
  40.                 printf("bad data at %d\n",
  41.                     tell(j) - BUFSIZ + 4 * k);
  42.     }
  43. }
  44.