Я не вижу вашу ссылку с работы, но если ваш компьютер утверждает, что больше нет байтов, я склонен верить этому.Почему бы вам не распечатать размер файла вместо того, чтобы делать что-либо вручную в шестнадцатеричном редакторе?
Кроме того, вам лучше использовать ввод / вывод 2-го уровня, вызовы f - древнее уродствои вы используете C ++, поскольку у вас есть новый.
int fh =open(filename, O_RDONLY);
struct stat s;
fstat(fh, s);
cout << "size=" << hex << s.st_size << "\n";
Теперь выполняйте поиск и чтение, используя вызовы ввода-вывода уровня 2, которые в любом случае быстрее, и давайте посмотрим, какой размер файла действительно есть.