>>size_t lSize, result;
>>...
>>lSize = ftell (pFile);
>
>Попробуй еще
>
>off_t lSize;
>...
>lSize = ftello (pFile); Пробывал, ничего не изменилось.
>Количество считанных из файла байт потрясает. Дайте мне два таких винта :)
>Переменные типа size_t выводи с форматом %zu
И при таком раскладе все тоже самое
result = 18446744071619674112
>И включить -Wall чтобы gcc на printf() вываливал варнинг по поводу несоответствия >спецификатора и типа выводимого значения.
Все соответствует, Wall молчит как рыба.
----------
Повторюсь:
все работает так как надо, ошибки не выскакивают, то что я загрузил в память я потом с легкостью записываю обратно на винт, без всяких потерь данных.
Просто выскакивает такой глюк, если размер файла больше ~2гиг.
Единственный минус, так это то, что нельзя проверить сколько он считал.
Но как вариант я уже думаю просто форматировать result через sprintf c %u.
Кстати где-то вычитал, что feof() в таком месте не будет работать в любом случаи.
Весь инет облазил, толком ничего и не нашел как исправить этот глюк с fread.