Технологии

Решено

Поясните, какую функцию выполняет данный оператор: while (ReadFile (hIn, Buffer, BUF_SIZE, &nIn, NULL) && nIn > 0) - вопрос №1696373

ноябрь 5, 2015 г.

  • Всего ответов: 1

  • another anonymous - аватарка

    another anonymous

    9-й в

    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-байтов — делать…

    ноябрь 5, 2015 г.
    Ответ понравился автору
    Лучший ответ по мнению автора

Похожие вопросы