Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие Макушкиной по МОЯ.doc
Скачиваний:
46
Добавлен:
16.11.2019
Размер:
1.33 Mб
Скачать

7.3 Создание и открытие файла.

Создать и открыть новый файл

Ввод:

AX = 5Bh СХ = атрибут файла DS:DX = адрес ASCIZ-строки с полным именем файла

Вывод:

CF = 0 и АХ = идентификатор файла, открытого для чтения/записи в режиме совместимости, если не произошла ошибка CF = 1 и АХ = код ошибки (03h — путь не найден, 04h — слишком много открытых файлов, 05h — доступ запрещен, 50h — файл уже существует)

Функция DOS 5Ah — Создать и открыть временный файл

Ввод:

AX = 5Ah СХ = атрибут файла DS:DX = адрес ASCIZ-строки с путем, оканчивающимся символом «\», и тринадцатью нулевыми байтами в конце

Вывод:

CF = 0 и АХ = идентификатор файла, открытого для чтения/записи в режиме совместимости, если не произошла ошибка (в строку по адресу DS:DX дописывается имя файла) CF = 1 и АХ = код ошибки (03h — путь не найден, 04h — слишком много открытых файлов, 05h — доступ запрещен)

Функция 5Ah создает файл с уникальным именем, который не является на самом деле временным, его следует специально удалять, для чего его имя и записывается в строку в DS:DX.

Во всех случаях строка с полным именем файла имеет вид типа

Name1 db 'с:\data\filename.ext',0

причем, если диск или путь опущены, используются их текущие значения.

Для работы с длинными именами файлов в DOS 7.0 (Windows 95) и старше используется еще один дополнительный набор функций, которые вызываются как функция DOS 71h.

Функция LFN 6Ch — Создать или открыть файл с длинным именем

Ввод:

AX = 716Сh ВХ = режим доступа Windows 95

биты 2 – 0: доступ

000 — только для чтения 001 — только для записи 010 — для чтения и записи 100 — только для чтения, не изменять время последнего обращения к файлу

биты 6 – 4: доступ для других процессов (см. функцию 3Dh) бит 7: файл не наследуется порождаемыми процессами бит 8: данные не буферизуются бит 9: не архивировать файл, если используется архивирование файловой системы (DoubleSpace) бит 10: использовать число в DI для записи в конец короткого имени файла бит 13: не вызывать прерывание 24h при критических ошибках бит 14: сбрасывать буфера на диск после каждой записи в файл

СХ = атрибут файла DX = действие

бит 0: открыть файл (ошибка, если файл не существует) бит 1: заменить файл (ошибка, если файл не существует) бит 4: создать файл (ошибка, если файл существует)

DS:SI = адрес ASCIZ-строки с именем файла DI = число, которое будет записано в конце короткого варианта имени файла

Вывод:

CF = 0 АХ = идентификатор файла СХ = 1, если файл открыт СХ = 2, если файл создан СХ = 3, если файл заменен CF = 1, если произошла ошибка АХ = код ошибки (7100h, если функция не поддерживается)

Если функции открытия файлов возвращают ошибку «слишком много открытых файлов» (АХ = 4), следует увеличить число допустимых идентификаторов с помощью функции 67h.