CodeNet / Платформы / Другие платформы / DOS / Прерывания DOS и BIOS
DOS Fn 3fH: читать файл через описатель
Вход
- AH = 3fH
- BX = описатель файла
- DS:DX = адрес буфера для чтения данных
- CX = число считываемых байт
Выход
- AX = код ошибки если CF установлен или число действительно прочитанных байт
Описание:
CX байт данных считываются из файла или устройства с описателем, указанным в BX. данные читаются с текущей позиции указателя чтения/записи файла и помещаются в буфер вызывающей программы, адресуемый через DS:DX.
Используйте функцию 42H LSEEK, чтобы установить указатель файла, если необходимо (OPEN сбрасывает указатель в 0). Модифицирует указатель чтения/записи файла, подготавливая его к последующим операциям чтения или записи.
Вы должны всегда сравнивать возвращаемое значение AX (число прочитанных байт) с CX (запрошенное число байт):
- если AX = CX, (и CF сброшен) - чтение было корректным без ошибок
- если AX = 0, достигнут конец файла (EOF)
- если AX
- при чтении с устройства - входная строка имеет длину AX байт
- при чтении из файла - в процессе чтения достигнут EOF
Замечания:
Эта функция превосходит сложные и неудобные FCB-функции. Она эффективно сочетает произвольный и последовательный доступ, позволяя пользователю выполнять свое собственное блокирование. Удобно использовать эту функцию для чтения стандартных описателей, таких как описатели стандартного в/в, взамен многочисленных буферизующих и посимвольных FCB-функций ввода. Когда вы читаете с устройства, AX возвращает длину считанной строки с учетом завершающего возврата каретки CR (ASCII 0dH).