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

      ДОС 3.x добавила к файловой  системе ДОС поддержку работы в

 локальных вычислительных сетях  (ЛВС). Это дополнение сказалось,

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

 

      В ДОС 2.x существуют следующие режимы открытия файла:

 

      0 - открыть для чтения

      1 - открыть для записи

      2 - открыть для чтения и записи

 

      ДОС 3.x  трактует режим открытия файла  как набор следующих

 флагов:

 

  7 6 5 4 3 2 1 0

 ┌─┬─────┬─┬─────┐

 │i│ Shr │0│ r/w │

 └┬┴──┬──┴─┴──┬──┘ Бит:                                   Маска:

            └───>0-2: полномочия, которые требуются     a & 07h

                      процессу для доступа к файлу:

                  000=чтение,001=запись,010=чтение и запись

     └───────────>4-6: режим разделения файла:

                       000=режим совместимости с ДОС 2.x   00h

                       001=запрет чтения/записи            10h

                       010=запрет записи                   20h

                       011=запрет чтения                   30h

                       100=нет ограничений                 40h

 

  └───────────────>7:   наследование:

                        1=файл принадлежит текущему         80h

                          процессу

                        0=наследуется процессами-потомками

 

      Примечания:

 

      1.  Если  файл  имеет  атрибут  "только  для чтения", то он

 перекрывает флаги открытия файла.

 

      2. Полномочия  доступа и режим разделения  файла имеют силу

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

 

      После  того, как  файл открыт  неким процессом, доступность

 его другим  процессам определяется как режимом  открытия файла в

 первом  процессе,  так  и  режимами  его  открытия в последующих

 процессах. Рассмотрим детально возможные ситуации.

 

      1.  Файл   впервые  открыт  в   режиме  совместимости;  это

 происходит:

 

      - при открытии через FCB;

      - при создании файла;

      - при открытии по номеру файла в режиме совместимости.


      В  этом случае  файл  может  быть открыт  процессом сколько

 угодно раз в режиме совместимости (если только он будет открыт в

 одном из четырех режимов разделения). Если же файл имеет атрибут

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

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

 совместимости с доступом на чтение.

 

      2.  Файл  открыт  в  одном  из  режимов  разделения.  Тогда

 возможность  его  повторного   открытия  определяется  следующей

 таблицей.

 

 Файл впервые открыт в              Может быть повторно открыт в

       режиме                               режиме

 ────────────────────────────────────────────────────────────────

 Запрет чтения и записи, любой    Не может быть повторно открыт

 вид доступа (X0010XXX)

 

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

    (X0100000)                        (X0100000)

 

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

     (X0100001)                         (X0110000)

                                  Без запретов, доступ на чтение

                                        (X1000000)

 

 Запрет записи, доступ на чтение  Без запретов, доступ на чтение

 и запись (X0100010)                    (X1000000)

 

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

       (X0110000)                        (X0100001)

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

                                         (X100001)

 

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

       (X0110001)                         (X0110001)

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

                                          (X1000001)

 

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

 и запись (X0110010)                     (X1000001)

 

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

       (X1000000)                 доступа (X0100XXX)

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

                                         (X1000XXX)

 

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

       (X1000001)                 доступа (X0110XXX)

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

                                          (X1000XXX)

 

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

 и запись (X1000010)                      (X1000XXX)

 

      В этом разделе описаны следующие функции:

 

 

 Номер функции     Описание

 ────────────────────────────────────────────────────────────────

    5Ch            Блокировка файлов

    5Eh            Различные сетевые функции

    5Fh            Переназначение сетевых устройств

 ────────────────────────────────────────────────────────────────

 

Вы находитесь в разделе: 
Также вам будет интересно:

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