home *** CD-ROM | disk | FTP | other *** search
- /* stdiotst.c (emx+gcc) */
-
- #include <stdio.h>
- #include <stdlib.h>
-
- int main (int argc, char *argv[])
- {
- FILE *f;
- int i, j;
-
- if (argc != 2)
- {
- fputs ("Usage: stdiotst <output_file>\n", stderr);
- return (1);
- }
- f = fopen (argv[1], "wb");
- if (f == NULL)
- {
- perror ("fopen");
- return (1);
- }
- for (i = 0; i < 32768; ++i)
- {
- if (fwrite (&i, sizeof (i), 1, f) != 1)
- {
- perror ("fwrite");
- return (1);
- }
- if (i % 4111 == 0) fflush (f);
- if (ftell (f) != (i+1) * sizeof (i))
- {
- fputs ("ftell() buggy\n", stderr);
- return (1);
- }
- }
- if (fflush (f) != 0)
- {
- perror ("fflush");
- return (1);
- }
- fclose (f);
- f = fopen (argv[1], "rb");
- if (f == NULL)
- {
- perror ("fopen");
- return (1);
- }
- for (i = 0; i < 32768; ++i)
- {
- if (fread (&j, sizeof (j), 1, f) != 1)
- {
- perror ("fread");
- return (1);
- }
- if (i != j)
- {
- fputs ("Mismatch\n", stderr);
- return (1);
- }
- if (i % 4111 == 0) fflush (f);
- if (ftell (f) != (i+1) * sizeof (i))
- {
- fputs ("ftell() buggy\n", stderr);
- return (1);
- }
- }
- fclose (f);
- return (0);
- }
-