#include <stdio.h>
#include <unistd.h>
#include <string.h>

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;
    }
}
