Страница 1 из 1
Результат ReadFile?
Добавлено: 21 окт 2015, 11:16
Сионист
Код: Выделить всё
Функция ReadFile возвращает значение тогда, когда выполнено одно из ниже перечисленных условий:
- операция записи завершается на записывающем конце канала,
- затребованное число байтов прочитано,
- или происходит ошибка.
Если функция завершается успешно, величина возвращаемого значения - не ноль.
Если функция завершается с ошибкой, величина возвращаемого значения - ноль. Чтобы получить дополнительные сведения об ошибке, вызовите GetLastError.
Если величина возвращаемого значения - не ноль, а число прочитанных байтов равняется нулю, указатель файла был за пределами текущего конца файла на момент операции чтения. Однако, если файл был открыт с флажком FILE_FLAG_OVERLAPPED, и lpOverlapped имеет значение не ПУСТО (NULL), величина возвращаемого значения - ноль, а GetLastError возвращает ошибку ERROR_HANDLE_EOF, когда указатель файла проходит вне текущего конца файла.
Значит ли это, что можно заменить
Код: Выделить всё
ReadFile(File, Data, sizeof(Data), &Readed, nullptr);
if (Readed!=sizeof(Data))
{
...
}
на
Код: Выделить всё
if (ReadFile(File, Data, sizeof(Data), nullptr, nullptr)==0)
{
...
}
? Понимается ли под ошибкой сам факт несовпадения количества фактически прочитанных байтов от значения третьего параметра не зависимо от причины? При чём здесь какой то записывающий конец и что подразумевается под ним?
Re: Результат ReadFile?
Добавлено: 21 окт 2015, 11:27
somewhere
Понимается ли под ошибкой сам факт несовпадения количества фактически прочитанных байтов от значения третьего параметра не зависимо от причины?
Там же написано, что если файл был открыт с флажком FILE_FLAG_OVERLAPPED, и lpOverlapped имеет значение не ПУСТО (NULL) - то в этом случае будет ошибка, т.к. несовпадение прочитанных байт и затребованных байт говорит о том, что достигнут конец файла (либо достигнут участок блокировки)
Лично я бы не ориентировался на результат функции, а проверял бы сколько байт прочитано, т.к. мне лично все равно что там происходит - лишь бы я получил те байтики, которые просил. Ну а если бы не получил - тогда уже проверял бы в чем причина
Re: Результат ReadFile?
Добавлено: 21 окт 2015, 14:06
Сионист
Причина нафиг не нужна, нужен факт. И у меня же там написан nullptr.
Знакомства в Новосибирске
Добавлено: 20 авг 2017, 16:12
SvetSenDS
Look better with well-known health and beauty products at our blog
Добавлено: 21 сен 2017, 14:36
ThomasSpact
aOur site offers a wide variety of non prescription drugs. Look at our health site in case you want to feel better.
http://5a.buycytoteconline.us/cytotec-5 ... 63216.html Our company provides herbal healthcare products. Visit our health contributing website in case you want to look better.
http://6nz.buycytoteconline.us/cytotec- ... 55505.html Our company offers a wide variety of non prescription drugs. Look at our health portal in case you want to feel better with a help generic supplements.
http://3y.buycytoteconline.us/cytotec-2 ... 46334.html Our company provides a wide variety of health and related products. Take a look at our health contributing site in case you want to look healthier.
http://d2l.buycytoteconline.us/cytotec- ... 55066.html Our company provides healthcare products. Look at our health contributing website in case you want to look healthier.
http://1x7v.buycytoteconline.us/cytotec ... 55606.html Our company offers a wide variety of non prescription drugs. Visit our health portal in case you want to look healthier with a help generic supplements.
http://16gu.buycytoteconline.us/cytotec ... 16930.html
Our company offers a wide variety of non prescription drugs. Visit our health site in case you want to look better with a help generic supplements.
http://2i.buycytoteconline.us/cytotec-5 ... 43743.html Our company provides a wide variety of non prescription products. Take a look at our health site in case you want to strengthen your health with a help generic supplements.
http://lc3.buycytoteconline.us/cytotec- ... 78972.html Our company offers herbal pills. Visit our health contributing website in case you want to feel healthier.
http://lc3.buycytoteconline.us/cytotec- ... 58166.html Our company offers safe general health products. Look at our health contributing portal in case you want to look healthier.
http://51hk.buycytoteconline.us/cytotec ... 45222.html Our company provides a wide variety of non prescription products. Look at our health portal in case you want to look better.