Сборник по задачам и примерам Assembler

Закрытие файла



Закрытие файла

В конце работы с файлом его нужно закрыть. Но это действие не является обязательным, так как функция 4сп, которая завершает выполнение программы, в числе прочих действий выполняет и закрытие всех файлов. Вход: АН = 3Eh; BX = дескриптор файла, полученный при его открытии. Выход: CF = 0 — АХ = не определен; CF = 1 — АХ = код ошибки: 6 — недопустимый

дескриптор.

Во время закрытия файла выполняются все незаконченные операции записи на диск в элементе каталога, соответствующего файлу, модифицируются различные поля, в том числе поля времени и даты устанавливаются в текущее время.

;prg07_05.asm - программа демонстрации закрытия файла функцией 3Eh.

:.........

.data

handle dw 0 :дескриптор файла filename db 'my_file.txt',О point fname dd filename

;......:

.code :*......

хогсх.сх :атрибуты файла - обычный файл

Ids dx.point_fnanve :фориируем указатель на имя файла

movah.5bh :номер функции DOS

int 21h :открываем файл



jnc ml ;обойдем открытие файла

moval.02h :режим доступа

1movah.3dh -.номер функции DOS

int 21h :открываем файл

jc exit :переход в случае ошибки

ml: :действия при успешном открытии файла:

mov handle.ах ;сохраним дескриптор файла

т2: ;закрываем файл:

В случае задания имени, как в примере выше, файл будет создан в корневом каталоге текущего диска. Для того чтобы разместить файл в конкретном каталоге, необходимо указать полный путь к нему с завершающим символом ' \' и 13 нулевыми байтами на конце, например:

filename db 'e:\asm_on_a\'.13 dup(0),0



Закрытие файла

Закрытие файла производится функцией Cl oseHandl e:

B00L C1oseHandle( HANDLE hObject );

Функция имеет один параметр размером в двойное слово — дескриптор, полученный при открытии файла функцией CreateFile.

При удачном завершении функция возвращает ненулевое значение в регистре ЕАХ. В случае неудачи функция возвращает в регистре ЕАХ значение NULL.

Win32 поддерживает несколько функций для часто используемых операций над файлами: копирование, перемещение и переименование файлов.



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