MS-DOS для программиста

Установка файлового указателя


Установить файловый указатель в нужную вам позицию можно с помощью функции 42h прерывания INT21h :



На входе: AH 42h
AL Метод кодирования смещения:

00h - абсолютное смещение от начала файла;01h - смещение от текущей позиции;02h - смещение от конца файла

BX Идентификатор открытого файла
CX Старший байт смещения
DX Младший байт смещения
На выходе: AX Код ошибки, если установлен флаг переноса CF;Младший байт текущей позиции, если флаг переноса CF сброшен
DX Старший байт текущей позиции

Функция 42h позволяет указывать новое значение указателя либо как абсолютное смещение от начала файла, либо как смещение от текущей позиции, либо как смещение от конца файла. В последних двух случаях используется смещение со знаком. Для указания смещения или абсолютной позиции программа должна задать в регистрах CX, DX соответствующее 32-битное значение.

Что произойдет, если при использовании методов кодирования 01h или 02h попытаться установить указатель позиции до начала файла?

Функция 42h при этом не возвратит признак ошибки, однако если будет сделана попытка прочитать или записать данные, то соответствующая функция чтения/записи завершится с ошибкой.



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