Update.
[platform/upstream/glibc.git] / libio / bug-rewind.c
1 #include <stdio.h>
2 #include <wchar.h>
3
4 #define PASSED  0
5 #define FAILED  3
6
7
8 int
9 main (void)
10 {
11   FILE *fptr;
12   char arg1;
13   char arg2;
14   int ret, ret1, ret2, result, num;
15
16   ret1 = 0;
17   ret2 = 0;
18
19   if ((fptr = fopen ("./wrewind.dat", "w+")) == NULL)
20     {
21       printf ("Unable to open file.\n");
22       return 1;
23     }
24
25   if ((ret = fwprintf (fptr, L"cderf")) <= 0)
26     {
27       printf ("Unable to write to file with fwprintf().\n");
28       fclose (fptr);
29       return 2;
30     }
31
32   rewind (fptr);
33   ret1 = fwscanf (fptr, L"%c%c", &arg1, &arg2);
34
35   rewind (fptr);
36   ret2 = fwscanf (fptr, L"%c%n%c", &arg1, &num, &arg2);
37
38   if (arg2 != 'd')
39     {
40       result = FAILED;
41       printf ("rewind after first fwscanf failed\n");
42     }
43   else
44     {
45       printf ("Passed\n");
46       result = PASSED;
47     }
48
49
50   fclose (fptr);
51   return result;
52 }