This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug libstdc++/45628] std::fstream::tellg invalidates I/O buffer



------- Comment #35 from potswa at mac dot com  2010-09-11 09:43 -------
(In reply to comment #34)
> Run the full testsuite, and you will see.

Lol, you're still looking at this too? I *just* got those pesky four testcases
done. I wasn't manually putting the codecvt state into the fpos in the special
case. I'll rerun the entire suite and post the patch here.

> In general, if you simply do fseek(0,
> cur) and then start writing, when eventually you have to flush you need the
> actual logical position in the file - the last fseek(0, cur) - 'something' -
> which is not available anywhere.

No, if fseek(0,cur) is implemented to have no side effects, it has NO side
effects. Nothing is lost. When the flush happens, it uses the logical position
obtained at the last flush, just as if fseek(0,cur) never occurred.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45628


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]