Я использую Linux и С++. У меня есть двоичный файл размером 210732 байт, но размер, указанный при поискеg/tellg, - 210728.
Получаю следующую информацию из ls-la, т.е. 210732 байта:
-rw-rw-r-- 1 pjs pjs 210732 17 февраля 10:25 output.osr
И со следующим фрагментом кода я получаю 210728:
std::ifstream handle;
handle.open("output.osr", std::ios::binary | std::ios::in);
handle.seekg(0, std::ios::end);
std::cout << "file size:" << static_cast<unsigned int>(handle.tellg()) << std::endl;
Итак, мой код отключен на 4 байта. Я подтвердил, что размер файла правильный с шестнадцатеричным редактором. Так почему я не получаю правильный размер?
Мой ответ: Я думаю, проблема была вызвана наличием нескольких открытых файлов для файла. По крайней мере, похоже, это разобрало меня. Спасибо всем, кто помог.