bug-rewind2.c 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #include <stdio.h>
  2. #include <wchar.h>
  3. static int fd;
  4. static void prepare (void);
  5. #define PREPARE(argc, argv) prepare ()
  6. #define TEST_FUNCTION do_test ()
  7. static int do_test (void);
  8. #include "../test-skeleton.c"
  9. static void
  10. prepare (void)
  11. {
  12. fd = create_temp_file ("wrewind2.", NULL);
  13. if (fd == -1)
  14. exit (3);
  15. }
  16. static int
  17. do_test (void)
  18. {
  19. wchar_t dummy[10];
  20. int ret = 0;
  21. FILE *fp;
  22. int result = 0;
  23. fp = fdopen (fd, "w+");
  24. if (fp == NULL)
  25. {
  26. puts ("fopen(""testfile"", ""w+"") returned NULL.");
  27. return 1;
  28. }
  29. else
  30. {
  31. fwprintf (fp, L"abcd");
  32. printf ("current pos = %ld\n", ftell (fp));
  33. if (ftell (fp) != 4)
  34. result = 1;
  35. rewind (fp);
  36. ret = fwscanf (fp, L"%c", dummy);
  37. if (ret != 1)
  38. {
  39. printf ("fwscanf returned %d, expected 1\n", ret);
  40. result = 1;
  41. }
  42. printf ("current pos = %ld\n", ftell (fp));
  43. if (ftell (fp) != 1)
  44. result = 1;
  45. rewind (fp);
  46. printf ("current pos = %ld\n", ftell (fp));
  47. if (ftell (fp) != 0)
  48. result = 1;
  49. fclose (fp);
  50. }
  51. return result;
  52. }