Many files moved from stdio to stdio-common.
[kopensolaris-gnu/glibc.git] / stdio-common / bug7.c
1 /* Regression test for fseek and freopen bugs.  */
2
3 #include <stdio.h>
4
5 int
6 main ()
7 {
8   int lose = 0;
9   char filename[] = "/tmp/foo";
10   FILE *fp;
11  
12   fp = fopen (filename, "w+");
13   fprintf (fp, "Hello world!\n");
14   fflush (fp);
15   fseek (fp, 5L, SEEK_SET);
16   if (fseek (fp, -1L, SEEK_CUR) < 0)
17     {
18       printf ("seek failed\n");
19       lose = 1;
20     }
21   fclose (fp);
22   remove (filename);
23
24   {
25     FILE *file1;
26     FILE *file2;
27     char filename1[] = "/tmp/foo";
28     char filename2[] = "/tmp/bar";
29     int ch;
30
31     file1 = fopen (filename1, "w");
32     fclose (file1);
33
34     file2 = fopen (filename2, "w");
35     fputc ('x', file2);
36     fclose (file2);
37
38     file1 = fopen (filename1, "r");
39     file2 = freopen (filename2, "r", file1);
40     if ((ch = fgetc (file2)) != 'x')
41       {
42         printf ("wrong character in reopened file, value = %d\n", ch);
43         lose = 1;
44       }
45     fclose (file1);
46     fclose (file2);
47     remove (filename1);
48     remove (filename2);
49   }
50
51   puts (lose ? "Test FAILED!" : "Test succeeded.");
52   return lose;
53 }