Технологии
Решено
Поясните, какую функцию выполняет данный оператор: while (ReadFile (hIn, Buffer, BUF_SIZE, &nIn, NULL) && nIn > 0) - вопрос №1696373
ноябрь 5, 2015 г.
-
Всего ответов: 1
-
while (ReadFile (hIn, Buffer, BUF_SIZE, &nIn, NULL) && nIn > 0)
начнем с ReadFile (hIn, Buffer, BUF_SIZE, &nIn, NULL) — читать из файла
vsokovikov.narod.ru/New_MSDN_API/Menage_files/fn_readfile.htm
параметры
hIn — хендл файла
Buffer — указатель на буфур
BUF_SIZE — размер читаемого блока данных, здесь может быть переменная с размером буфера, но это и логично — читаемый блок не должен быть больше буфера что бы не залезть в чужой участок памяти… и равенство этих величин так же логично..
&nIn — ссылка на переменную, куда надо будет вписать число прочитанных байт по факту. пояснение — в переменной выше может быть запрошено байтов больше чем осталось до конца файла. фактическое значение укажет размер ценной информации. все остальное в буфере следует считать мусором
NULL — специальная фишка для асинхронной работы с файлом — когда функция может вернуть значение раньше чем операция завершится физически. тут указывается ссылка на спец структуру для работы с файлами открымы для асинхронного режима. в данном случае не используются эти фичи
ReadFile возвращает логическое значение успех/не успех, подробнее в описании. в общем случае истина это без ошибок, однако при этом может быть считано 0 байт — указатель и так уже был на конце файла
while- задет цикл по смыслу — пока чтение-из-файла-без-ошибок И считано-больше-0-байтов — делать…Лучший ответ по мнению автора
Похожие вопросы
Что делать если в программе Microsoft Visual Studio Profesional при запуске проекта пишит "Не удается запустить программу...
май 30, 2014 г.
Решено
Поясните, какую функцию выполняет данный оператор: WriteFile (hOut, Buffer, nIn, &nOut, NULL);
ноябрь 5, 2015 г.