This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
libstdc++/7206: gcc 3.1:rewind(fptr) doesn`t work after fwscanf (fptr,L"%c%c",...) on opened with "w+" file.
- From: johnb at stl dot sarov dot ru
- To: gcc-gnats at gcc dot gnu dot org
- Date: 4 Jul 2002 12:22:52 -0000
- Subject: libstdc++/7206: gcc 3.1:rewind(fptr) doesn`t work after fwscanf (fptr,L"%c%c",...) on opened with "w+" file.
- Reply-to: johnb at stl dot sarov dot ru
>Number: 7206
>Category: libstdc++
>Synopsis: gcc 3.1:rewind(fptr) doesn`t work after fwscanf (fptr,L"%c%c",...) on opened with "w+" file.
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Thu Jul 04 05:26:03 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator: johnb@stl.sarov.ru
>Release: gcc 3.1
>Organization:
>Environment:
Red Hat Linux release 7.2 (Enigma), glibc 2.2.4
>Description:
The rewind() function doesn`t work after first call to fwscanf(), second call to fwscanf() continue reading the stream from last unread position, not the first one as should be after call to rewind(). This situation doesn`t exist with fscanf(). See the testcases.
>How-To-Repeat:
Just compile with gcc 3.1, for example:
$gcc31 wrewind.c -o wrewind
$wrewind
You`ll get "...failed" message.
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="rewind.c"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="rewind.c"
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIFBBU1NFRCAgMAojZGVmaW5lCUZBSUxFRCAgMwoK
Ci8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0qLwppbnQgbWFpbih2b2lkKQp7CglGSUxFICpmcHRyOwoJY2hhciBhcmcx
OwoJY2hhciBhcmcyOwoJaW50ICByZXQscmV0MSxyZXQyLHJlc3VsdCxudW07CgogICAgICAgIHJl
dDEgPSAwOwoJcmV0MiA9IDA7CgkKCWlmICgoZnB0ciA9IGZvcGVuKCIuL3Jld2luZC5kYXQiLCJ3
KyIpKSA9PSBOVUxMKSB7CgkJcHJpbnRmICgiVW5hYmxlIHRvIG9wZW4gZmlsZS5cbiIpOwoJCXJl
dHVybiAxOwoJIH0KCQoJaWYgKChyZXQgPSBmcHJpbnRmKGZwdHIsImNkZXJmIikpIDw9IDApIHsK
CQlwcmludGYgKCJVbmFibGUgdG8gd3JpdGUgdG8gZmlsZSB3aXRoIGZwcmludGYoKS5cbiIpOwog
ICAgICAgICAgICAgICAgZmNsb3NlIChmcHRyKTsKCQlyZXR1cm4gMjsKCSB9CgoJcmV3aW5kKGZw
dHIpOwogICAgICAgIHJldDEgPSBmc2NhbmYoZnB0ciwiJWMlYyIsJmFyZzEsJmFyZzIpOwoKCXJl
d2luZChmcHRyKTsKCXJldDIgPSBmc2NhbmYoZnB0ciwiJWMlbiVjIiwmYXJnMSwmbnVtLCZhcmcy
KTsKCglpZiAoYXJnMiAhPSAnZCcpIHsKCSAgICByZXN1bHQgPSBGQUlMRUQ7CiAJICAgIHByaW50
ZiAoInJld2luZCBhZnRlciBmaXJzdCBmc2NhbmYgZmFpbGVkXG4iKTsKCSB9CgllbHNlIHsKCSBw
cmludGYgKCJQYXNzZWRcbiIpOwoJIHJlc3VsdCA9IFBBU1NFRDsKCX0KCQoKICBmY2xvc2UgKGZw
dHIpOwogIHJldHVybiByZXN1bHQ7Cn0K