Скачиваний:
16
Добавлен:
11.04.2015
Размер:
16.67 Кб
Скачать
  1. Метод дескриптора файла.

Про файл тоже, что и в 36.

Дескриптор файла - это номер (число), который система присваивает файлу при работе с ним функций прерывания int 21h.

Рассмотрим основные функции работы с файлами:

1. AH = 3ch - создаёт новый файл с указанной спецификацией. Если указанный файл существует, он усекается до нулевой длины.

DS:DX = адрес строки с именем файла в виде ASCIIZ,

в СХ - атрибут файла;

при возврате: АХ = дескриптор

при ошибке: CF = 1; АХ = код ошибки.

После создания файла в него можно писать информацию. Если файл был создан предварительно, то его можно открыть для чтения, записи или добавление в него информации.

2. АН = 3dh - открывает файл с указанной спецификацией. При вызове в AL помещается режим доступа: 0 - для чтения; 1 - для записи; 2 - для записи и чтения (дополнения), в СХ - атрибут файла, в DS:DX - адрес строки с именем файла. Возвращает дескриптор файла и устанавливает указатель файла на начало файла для режимов 0 и 1, и на конец файла для режима 2.

При возврате в ax=дескриптор;

При ошибке: CF = 1; АХ = код ошибки.

При открытии файла DOS назначает ему очередной свободный элемент (блок описания файла) в специальной системной таблице открытых файлов SFT (System File Table), расположенной среди системных областей данных. Объём этой таблицы определяет максимальное число открытых файлов, с которыми можно работать одновременно, оно задаётся на этапе конфигурирования DOS директивой FILES файла CONFIG.SYS. Важным элементом блока описания файла является ячейка, размером в DD, в которой хранится указатель файла - номер байта относительно начала файла, с которого начнётся очередная операция записи или чтения. Наличие указателя позволяет организовать прямой доступ к файлу, т. е. чтение или запись, начиная с любого места файла. Ссылку на номер выделенного файлу блока описания файла в SFT DOS возвращает в программу в виде дескриптора, который необходимо сохранять в выделенной для этой цели переменной, обычно называемой handle. Если этого не сделать — дескриптор потеряется.

3. AH = 3eh - закрывает файл. Сбрасывает на диск внутренние буферы файла. Если файл был модифицирован, в записи каталога устанавливаются новые значения длины файла, а также дата и время создания файла, освобождается блок описания файла в SFT вместе с закреплённым за ним дескриптором:

При вызове: ВХ=дискриптор;

При ошибке: CF=1; AX=код ошибки.

Соседние файлы в папке Ответы по пунктам