#include #include #include int stdio_block_read = 1, stdio_block_write = 1; int main (int argc, char *argv[]) { FILE *f; int i; char buffer[31]; const char filename[] = "/tmp/bug4.test"; while ((i = getopt (argc, argv, "rw")) != -1) switch (i) { case 'r': stdio_block_read = 0; break; case 'w': stdio_block_write = 0; break; } f = fopen (filename, "w+"); for (i = 0; i < 9000; ++i) putc('x', f); fseek (f, 8180L, 0); fwrite ("Where does this text come from?", 1, 31, f); fseek (f, 8180L, 0); fread (buffer, 1, 31, f); fwrite (buffer, 1, 31, stdout); fclose (f); remove (filename); if (!memcmp (buffer, "Where does this text come from?", 31)) { puts ("\nTest succeeded."); return 0; } else { puts ("\nTest FAILED!"); return 1; } }