Функция DOS 3Eh — Закрыть файл
Ввод: | АН = 3Eh ВХ = идентификатор |
Вывод: | CF = 0, если не произошла ошибка CF = 1 и АХ = 6, если неправильный идентификатор |
Если файл был открыт для записи, все файловые буфера сбрасываются на диск, устанавливается время модификации файла и записывается его новая длина.
Функция DOS 41h — Удаление файла
Ввод: | АН = 41h DS:DX = адрес ASCIZ-строки с полным именем файла |
Вывод: | CF = 0, если файл удален CF = 1 и АН = 02h, если файл не найден, 03h — если путь не найден, 05h — если доступ запрещен |
Удалить файл можно только после того, как он будет закрыт, так как DOS будет продолжать выполнять запись в несуществующий файл, что может привести к разрушению файловой системы. Функция 41h не позволяет использовать маски (символы * и ? в имени файла) для удаления сразу нескольких файлов, хотя этого можно добиться, вызывая ее через недокументированную функцию 5D00h. Но, начиная с DOS 7.0 (Windows 95), официальная функция удаления файла может работать сразу с несколькими файлами.
Функция LFN 41h — Удаление файлов с длинным именем
Ввод: | АХ = 7141h DS:DX = адрес ASCIZ-строки с длинным именем файла SI = 0000h: маски не разрешены и атрибуты в СХ игнорируются SI = 0001h: маски в имени файла и атрибуты в СХ разрешены:
СН = атрибуты, которые файлы должны иметь |
Вывод: | CF = 0, если файл или файлы удалены CF = 1 и АХ = код ошибки, если произошла ошибка. Код 7100h означает, что функция не поддерживается |