[RFC] Large file iostreams
Paolo Carlini
pcarlini@unitus.it
Mon Oct 13 09:57:00 GMT 2003
Pétur Runólfsson wrote:
>Hi,
>
>This was discussed in July in the thread starting at:
>http://gcc.gnu.org/ml/libstdc++/2003-07/msg00108.html
>
>It was agreed that streamoff needs to be a class type that
>encapsulates a 64-bit integer and that this change needs to be made
>before gcc 3.4 is released.
>
>The best I can come up with is something like this:
>
>// A signed integer type, at least 64-bits wide
>typedef /* ... */ __streamoff_base_type;
>
>
Hi Pétur
Indeed, I was about to post something about this. Thanks for your
detailed analysis: I sincerely hope we can fix 8610 in time.
Before going into the deep technical issues, a couple of thoughts
about the general framework, which I would like to work on,
relying on the specifics of the streamoff class which probably
you are better than me at refining.
What should happen in 'seekoff'/'seekpos' if the user asks for
long seek on a platform which doesn't have large file support in
its glibc? I think Nathan would agree that the best thing to do
is providing checks that lead to failure. Therefore, the idea
would be adding an autoconf test for off64_t and, depending on
it, issuing either a direct low level lseek64 or a check + a
low level lseek. Do you concur?
About the typedef, I think we have basically two options:
1- long long
2- int64_t
I don't remember well the pros and cons of both, but this doesn't
seem such a difficult to resolve issue.
Paolo.
More information about the Libstdc++
mailing list