Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

DOS Fn 40H: писать в файл через описатель




Выход

Вход

DOS Fn 3fH: читать файл через описатель

Выход

Вход

DOS Fn 3eH: Закрыть описатель файла

Выход

Вход

DOS Fn 3dH: открыть описатель файла

Выход

Вход

  • AH = 3cH
  • DS:DX = адрес строки ASCIIZ с именем файла
  • CX = атрибут файла
  • AX = код ошибки если CF установлен и описатель файла если ошибки нет

Описание:

DS:DX указывает на строку ASCIIZ в формате: "d:путьимяфайла",0. если диск и/или путь опущены, они принимаются по умолчанию.

  • файл создается в указанном (или умалчиваемом) оглавлении
  • файл открывается в режиме доступа чтение/запись
  • вы должны созранить описатель (handle) для последующих операций
  • если файл уже существует:
  • при открытии файл усекается до нулевой длины
  • если атрибут файла - только чтение, открытие отвергается (атрибут можно изменить функцией 43H изменить атрибут)
  • CONFIG.SYS специфицирует число доступных описателей в системе
  • используйте функцию 5bH создать Новый файл, если вы не хотите перекрывать (усекать) существующий файл.
  • AH = 3dH
  • DS:DX = адрес строки ASCIIZ с именем файла
  • AL = режим открытия
  • AX = код ошибки если CF установлен и описатель файла если нет ошибки.

Описание:

DS:DX указывает на строку ASCIIZ в формате: "d:путьимяфайла",0. Если диск и/или путь опущены, они принимаются по умолчанию.

  • файл должен существовать. См. функцию 3cH (создать файл).
  • файл открывается в выбранном режиме доступа / режиме открытия для совместимости с DOS 2.x и избежания сетевых режимов, задавайте:
    • AL = 0 чтобы открыть для чтения
    • AL = 1 чтобы открыть для записи
    • AL = 2 чтобы открыть для чтения и записи
  • указатель чтения/записи устанавливается в 0. См. 42H (LSEEK)
  • вы должны сохранить описатель (handle) для последующих операций
  • разделение файлов должно быть активизировано (команда DOS SHARE), если запрашивается открытие в одном из режимов разделения.
  • CONFIG.SYS специфицирует число доступных описателей файлов.
  • AH = 3eH
  • BX = описатель файла
  • AX = код ошибки если CF установлен

Описание:

BX содержит описатель файла (handle), возвращенный при открытии. файл, представленный этим описателем, закрывается, его буфера сбрасываются, и оглавление обновляется корректными размером, временем и датой.

Из-за нехватки описателей файлов (максимум 20, по умолчанию 8), вам может понадобиться закрыть часть умалчиваемых описателей, как, например, описатель 3 (стандартный AUX).

  • AH = 3fH
  • BX = описатель файла
  • DS:DX = адрес буфера для чтения данных
  • CX = число считываемых байт
  • AX = код ошибки если CF установлен или число действительно прочитанных байт

Описание:

CX байт данных считываются из файла или устройства с описателем, указанным в BX. данные читаются с текущей позиции указателя чтения/записи файла и помещаются в буфер вызывающей программы, адресуемый через DS:DX.

Используйте функцию 42H LSEEK, чтобы установить указатель файла, если необходимо (OPEN сбрасывает указатель в 0). Модифицирует указатель чтения/записи файла, подготавливая его к последующим операциям чтения или записи.

Вы должны всегда сравнивать возвращаемое значение AX (число прочитанных байт) с CX (запрошенное число байт):

  • если AX = CX, (и CF сброшен) - чтение было корректным без ошибок
  • если AX = 0, достигнут конец файла (EOF)
  • если AX < CX (но ненулевой):
    • при чтении с устройства - входная строка имеет длину AX байт
    • при чтении из файла - в процессе чтения достигнут EOF

Замечания:

Эта функция превосходит сложные и неудобные FCB-функции. Она эффективно сочетает произвольный и последовательный доступ, позволяя пользователю выполнять свое собственное блокирование. Удобно использовать эту функцию для чтения стандартных описателей, таких как описатели стандартного в/в, взамен многочисленных буферизующих и посимвольных FCB-функций ввода. Когда вы читаете с устройства, AX возвращает длину считанной строки с учетом завершающего возврата каретки CR (ASCII 0dH).




Поделиться с друзьями:


Дата добавления: 2014-01-20; Просмотров: 871; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.