Здравствуйте!
Есть файл, 33 кб. Читаю по 16К. На третьем чтении read возвращает -1 с ошибкой 1 — "An error occurred when reading from the file". Ппц как понятно. Какого Ч оно не смогло прочитать последний килобайт и вернуть мне количество фактически считанных байт? Это что, при такой ошибке мне надо хвост побайтно вычитывать? Или где я обосрался?
size_t read_portion_size = 16*1024;
//...
while (!file.atEnd())
{
auto readed = file.read( (char*)&bbData[readPos], read_portion_size );
if (readed==0 || readed==(qint64)-1)
{
if (readed==(qint64)-1)
{
cout<<"Error: "<<(unsigned)file.error()<<"\n";
}
break;
}
readPos += (offset_t)readed;
}