Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > FileSeek возвращает большое отрицательное число |
Автор: Zakhar_Shan 11.12.2012, 14:08 | ||||
Есть процедура по открытию бинарника
Задача FileSeek, узнать размер файлика. Приложение уже давно работает без отказов. Но попался файлик, FileSeek возвращает мега большое отрицательное число. В Help'e написано
т.е. в случае неудачи возврат -1. Но он мне возвращает явно не -1. Тем более не пойму, в чем причина ошибки именно в этом файле... |
Автор: shuttle 11.12.2012, 14:25 | ||||
fileLength - какого типа? сделай unsigned. |
Автор: Zakhar_Shan 11.12.2012, 14:43 | ||||||||
__int64 fileLength ... А в мануале:
|
Автор: math64 11.12.2012, 15:34 |
файл может быть длиной терабайт, но никак не экзабайт, таких больших винтов ещё нет. Но был случай, когда из-за сбоя Винда выдавала свободное место в экзабайтах. |
Автор: Zakhar_Shan 11.12.2012, 15:40 | ||
Файл то размером 2.2 Гб всего....:( |
Автор: Zakhar_Shan 11.12.2012, 19:28 |
![]() |
Автор: volatile 11.12.2012, 19:45 |
Не понимаю зачем такие большие глаз делать? ведь очевидно что у вас вызывается 32-разрядная функция ФайлСик А нужно вызвать перегруженную 64-разрядную На всякий случай, если в вашем компиляторе не поддерживаюся суффикс 'LL' для цифровых литералов, можно непосредствеено привести Offset к 64 разрядному целому: |
Автор: Zakhar_Shan 12.12.2012, 08:25 | ||
Просто я особой литературы не читал, так все для начинающих, и честно говоря от корки до корки, но о таком первый раз слышу... |