Как правильно готовить QFile?
От: удусекшл  
Дата: 22.11.19 14:01
Оценка: :)
Здравствуйте!

Есть файл, 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;
    }
Отредактировано 22.11.2019 14:02 удусекшл . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.