5.9.2. Фн 5Ch - Блокировка файлов

Error message

Notice: Undefined index: add term path in hansel_get_breadcrumbs() (line 524 of /data/sites/msdosworld.ru/www/sites/all/modules/hansel/hansel.module).

      Вход: AH = 5Ch (ДОС 3.x)

            AL = 0 - блокировать область файла

                 1 - разблокировать область файла

            BX = номер файла

            CX:DX = смещение области от начала файла

            SI:DI = длина области в байтах

 

      Выход: AX = код ошибки (1, 6 или 33), если бит CF = 1

 

      Описание: Эта функция, появившаяся в ДОС 3.0, блокирует или

 разблокирует  область  заданного  файла.  Область  начинается на

 расстоянии (65536 *  CX + DX) байтов от  начала файла и занимает

 (65536 * SI + DI) байтов.

 

      Блокировки  влияют  на  открытие,  чтение  и  запись  файла

 поражденными или параллельными процессами. Если процесс пытается

 обратиться к файлу, доступ  к которому запрещен режимом открытия

 или  заблокирован  этой  функцией,   то  ДОС  делает  3  попытки

 обращения  к файлу  и вызывает  обработчик фатальных  ошибок Int

 24h.

 

      Рекомендуется  не делать  попытку чтения  и ожидать ошибку.

 Вместо   этого   лучше   попытаться   заблокировать   область  и

 проанализировать результат. Тем самым Вы избежите перехода ДОС к

 обработке фатальной  ошибки, когда ДОС  находится в неустойчивом

 состоянии.

 

      Блокировка за концом файла  не считается ошибкой. Вы можете

 заблокировать  весь  файл,   задав  CX=DX=0,  SI=DI=0FFFFh.  При

 разблокировке начало и длина области  должны быть теми же, что и

 при блокировке.

 

      Примечания:

 

      1. Для  выполнения этой фн должна  быть загружена программа

 SHARE. Иначе Вы получите на выходе код ошибки 1.

 

      2. Дублирование  номера файла по  фн 45h или  46h наследует

 все  блокировки этого  файла. Порожденный  процесс не  наследует

 права  доступа  к   заблокированным  областям  файла,  открытого

 родительским процессом.

 

      3.   Завершение   программы,   имеющей   открытый   файл  с

 заблокированной  областью,  или  закрытие  такого  файла ведет к

 непредсказуемым результатам.  Вы должны следить,  в чатности, за

 тем, чтобы обработчики прерываний Int  23h и Int 24h удаляли все

 блокировки до завершения Вашей программы.

 

      4. Не держите файл  в заблокированном состоянии. Блокируйте

 область, выполните ввод-вывод и сразу разблокируйте ее.

 

      5.  Эту функцию  следует использовать  в следующих  режимах

 открытия файлов:

 

      Запрет чтения, любой вид доступа

      Без запретов, любой вид доступа

      Запрет записи, доступ на запись

      Запрет записи, доступ на чтение и запись.

 

      См. также: Фн 3Dh

                 Режимы открытия файлов

 

Вы находитесь в разделе: 

Добавить коментарий