Информация об изменениях

Сообщение Re[2]: std::ifstream, MSVC 2012, бага? от 14.02.2015 8:59

Изменено 14.02.2015 13:14 nen777w

N>>Если открывать файл размером 10 gb вернёт 0 т.е. сработает условие !in.good(), если убрать std::ifstream::ate файл откроется.
N>>Можно посикать до конца и тогда in.tellg() — вернёт правильный размер.
N>>Интересно почему с std::ifstream::ate на файлах >= 10Gb не работает. Бага? (Если да куда писать?)

CS>32 bit переполнение. По всей видимости size_t используется. Попробуй в 64-bit собрать.

Я не копал вглубь, времени в нет, но приложение на котором это обнаружилось 64-битное.
Ну и не может быть (не должно по крайней мере) так чтоб для фиг знает сколько существуюшего NTFS в реализации (i/o)fstream ограничились 32 битными типами.
Во общем постараюсь найти время сегодня-завтра пойду в глубь посмотрю что там происходит, потом отпишусь.
Re[2]: std::ifstream, MSVC 2012, бага?
N>>Если открывать файл размером 10 gb вернёт 0 т.е. сработает условие !in.good(), если убрать std::ifstream::ate файл откроется.
N>>Можно посикать до конца и тогда in.tellg() — вернёт правильный размер.
N>>Интересно почему с std::ifstream::ate на файлах >= 10Gb не работает. Бага? (Если да куда писать?)

CS>32 bit переполнение. По всей видимости size_t используется. Попробуй в 64-bit собрать.

Я не копал вглубь, времени в нет, но приложение на котором это обнаружилось 64-битное.
Ну и не может быть (не должно по крайней мере) так чтоб для фиг знает сколько существуюшего NTFS в реализации (i/o)fstream ограничились 32 битными типами.
Потом почему если открывть а потом сикать то работает. tellg() возвращает 64-битный беззнаковый.
Бага скорее всего.
Во общем постараюсь найти время сегодня-завтра пойду в глубь посмотрю что там происходит, потом отпишусь.