1 /* Check that basic (ll|f)seek sim functionality works. Also uses basic 2 file open/write functionality. */ 3 #include <stdio.h> 4 #include <stdlib.h> 5 #include <string.h> 6 7 int 8 main (void) 9 { 10 FILE *f; 11 const char fname[] = "sk1test.dat"; 12 const char tsttxt[] 13 = "A random line of text, used to test correct read, write and seek.\n"; 14 char buf[sizeof tsttxt] = ""; 15 16 f = fopen (fname, "w"); 17 if (f == NULL 18 || fwrite (tsttxt, 1, strlen (tsttxt), f) != strlen (tsttxt) 19 || fclose (f) != 0) 20 { 21 printf ("fail\n"); 22 exit (1); 23 } 24 25 /* Using "rb" to make this test similar to the use in genconf.c in 26 GhostScript. */ 27 f = fopen (fname, "rb"); 28 if (f == NULL 29 || fseek (f, 0L, SEEK_END) != 0 30 || ftell (f) != strlen (tsttxt)) 31 { 32 printf ("fail\n"); 33 exit (1); 34 } 35 36 rewind (f); 37 if (fread (buf, 1, strlen (tsttxt), f) != strlen (tsttxt) 38 || strcmp (buf, tsttxt) != 0 39 || fclose (f) != 0) 40 { 41 printf ("fail\n"); 42 exit (1); 43 } 44 45 printf ("pass\n"); 46 exit (0); 47 } 48