home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Professional / OS2PRO194.ISO / os2 / prgramer / unix / emx / test / stdiotst.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-01-02  |  1.3 KB  |  70 lines

  1. /* stdiotst.c (emx+gcc) */
  2.  
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5.  
  6. int main (int argc, char *argv[])
  7. {
  8.   FILE *f;
  9.   int i, j;
  10.  
  11.   if (argc != 2)
  12.     {
  13.       fputs ("Usage: stdiotst <output_file>\n", stderr);
  14.       return (1);
  15.     }
  16.   f = fopen (argv[1], "wb");
  17.   if (f == NULL)
  18.     {
  19.       perror ("fopen");
  20.       return (1);
  21.     }
  22.   for (i = 0; i < 32768; ++i)
  23.     {
  24.       if (fwrite (&i, sizeof (i), 1, f) != 1)
  25.         {
  26.           perror ("fwrite");
  27.           return (1);
  28.         }
  29.       if (i % 4111 == 0) fflush (f);
  30.       if (ftell (f) != (i+1) * sizeof (i))
  31.         {
  32.           fputs ("ftell() buggy\n", stderr);
  33.           return (1);
  34.         }
  35.     }
  36.   if (fflush (f) != 0)
  37.     {
  38.       perror ("fflush");
  39.       return (1);
  40.     }
  41.   fclose (f);
  42.   f = fopen (argv[1], "rb");
  43.   if (f == NULL)
  44.     {
  45.       perror ("fopen");
  46.       return (1);
  47.     }
  48.   for (i = 0; i < 32768; ++i)
  49.     {
  50.       if (fread (&j, sizeof (j), 1, f) != 1)
  51.         {
  52.           perror ("fread");
  53.           return (1);
  54.         }
  55.       if (i != j)
  56.         {
  57.           fputs ("Mismatch\n", stderr);
  58.           return (1);
  59.         }
  60.       if (i % 4111 == 0) fflush (f);
  61.       if (ftell (f) != (i+1) * sizeof (i))
  62.         {
  63.           fputs ("ftell() buggy\n", stderr);
  64.           return (1);
  65.         }
  66.     }
  67.   fclose (f);
  68.   return (0);
  69. }
  70.