100
в которой
• READ означает, что файл открыт только для чтения,
• WRITE означает, что файл открыт только для записи,
• READ WRITE означает, что файл открыт как для чтения, так и для записи.
В случае одновременной работы нескольких пользователей (для MS DOS эта ситуация может возникнуть только при работе в сети) бывает необходимо разрешить или ограничить доступ остальных пользователей к открываемому файлу в целом, чтобы программы разных пользователей не создавали информационных помех друг другу. Это достигается использованием конструкции
{SHARED¦LOCK READ¦LOCK WRITE[LOCK READ WRITE) (9.12)
Где:
• SHARED означает совместное использование,
• LOCK READ означает запрет на чтение,
• LOCK WRITE означает запрет на запись,
•• LOCK READ WRITE означает запрет на чтение и запись.
Установка и снятие дополнительных запретов осуществляется при помощи процедур, соответственно "запирающих" или "отпирающих", файл:
LOCK [#]filenumber% [, {records ¦ [starts] TOendfi}] (9.13), которая запрещает или ограничивает сетевому процессу доступ к файлу. UNLOCK [#]filenumber% [, (records ¦ [starts] T0end&)]
(9.14), которая снимает ограничения, наложенные последней командой LOCK. Здесь: records , starts и ends — числа, задающие номер или интервал номеров, для режима RANDOM — это номера записей (отсчет от первой записи файла), для режима BYNARY — номера байтов (отсчет от первого байта файла). Для режимов с последовательным доступом или по умолчанию номеров записей LOCK и UNLOCK действуют на весь файл.
Кроме номера файла при работе с ним почти во всех процедурах и функциях явно или неявно для адресации используется еще одно число типа LONG, указывающее на расположение читаемой или записываемой информации в файле и потому называемое указателем. Сразу после открытия файла указатель задает адрес начала файла для всех режимов кроме APPEND, у которого позиция должна быть следующей за последним байтом открытого файла (в соответствии с назначением этого режима). Для всех режимов за чтением или записью следует автоматическое изменение значения указателя, физическое значение которого каждый раз изменяется на количество прочитанных или записанных байтов (без явного участия интерпретируемой программы). Если другие способы изменения указателя не допускаются, то доступ к файлу называется последовательным. Если разрешается задавать значение указателя произвольным образом, то доступ к файлу называется произвольным. Хотя используемое операционной системой значение позиции указателя должно быть представлено в байтах,