ofstream и tellp на больших файлах
От: Vaynamond Россия  
Дата: 08.04.19 13:27
Оценка:
День добрый!
Подскажите, плиз, как корректно использовать tellp на файлах больше 2 Гб ?
Сейчас используется такая конструкция:
streamoff  offs = pFileOutput->tellp();

Если размер файла до 2 Гб, всё Ок, если больше — в offs мусор.
Полез смотреть под отладчиком — для streamoff отображается тип __int64, tellp внутри вызывает _ftelli64,
но на финишной прямой перед присваиванием вызывается operator streamoff(), в котором полученное смещение
пропускается через макроопределение _FPOSOFF, приводящее значение к типу long со всеми вытекающими.
Поискал по исходникам — _FPOSOFF везде приводит к long.

Используется Visual Studio 2010, операционка Windows 7 x64, приложение 32-разрядное.
Re: ofstream и tellp на больших файлах
От: reversecode google
Дата: 08.04.19 18:02
Оценка: 3 (2)
V>Используется Visual Studio 2010, операционка Windows 7 x64, приложение 32-разрядное.

пробовали гуглить прежде чем спрашивать ?
https://stackoverflow.com/questions/13837810/seekg-cannot-handle-file-of-4294967295-bytes-properly
баг был пофикшен в 2012 студии
Re[2]: ofstream и tellp на больших файлах
От: Vaynamond Россия  
Дата: 08.04.19 19:40
Оценка:
Здравствуйте, reversecode, Вы писали:


V>>Используется Visual Studio 2010, операционка Windows 7 x64, приложение 32-разрядное.


R>пробовали гуглить прежде чем спрашивать ?

R>https://stackoverflow.com/questions/13837810/seekg-cannot-handle-file-of-4294967295-bytes-properly
R>баг был пофикшен в 2012 студии
Пробовал, только искал по tellp. Спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.