Графические устройства

         

Открытие существующего файла



Открытие существующего файла

DOS исполняет специальную функцию, предназначенную для открытия существующего файла (open File). Она име-ет код 3D0h и вызывается через прерывание int 2ih. Перед вызовом функции в регистрах ds:dx указывается адрес начала строки, содержащей спецификацию файла. В регистр ai помещается код режима открытия: 0 — для чтения, \ — для записи, 2 — для чтения и записи (для редактирования), а в регистре ah указывается код функции 3Dh.

Если файл существует, то он открывается. При возврате из DOS признак переполнения (разряд carry регистра флагов) очищен, а в регистре ах нахо-дится идентификатор файла (file handle), который надо сохранить в специ-циально выделенной переменной (мы обозначали ее handle). Идентификатор нужен DOS для работы с конкретным файлом. По существу, это порядковый номер файла, открытого задачей.

Если при возврате из DOS флаг переполнения установлен, то файл не был открыт по каким-то причинам. Наиболее вероятно из-за ошибки в тексте спецификации. Поэтому задача должна проверять состояние разряда С и выводить аварийное сообщение, если он установлен.

Запомним, что спецификация должна содержать данные, необходимые для поиска файла на диске, например, C:\Windows\Clouds.bmp. При обработке спецификации DOS преобразует строчные буквы в заглавные, поэтому можно использовать буквы любого размера. Если путь для поиска не указан, то DOS ищет файл в текущем каталоге. Признаком конца спецификации является пустой байт.



Содержание раздела