Шрифт:
Затем стартует вторая программа. Она устанавливает блокировку
Приведенное описание блокировки файла может показаться сложноватым, но ее труднее описать, чем применить. Поэтому выполните упражнение 7.9.
Давайте рассмотрим пример работы блокировки файла в программе lock3.с. Для опробования блокировки вам понадобятся две программы: одна для установки блокировки и другая для ее тестирования. Первая программа выполняет блокировку.
1. Начните с файлов
2. Откройте файловый дескриптор:
3. Поместите данные в файл:
4. Задайте разделяемую блокировку для участка region 1 с 10-го байта по 30-й:
5. Задайте исключительную блокировку для участка region_2 с 40-го байта по 50-й:
6. Теперь заблокируйте файл:
7. Подождите какое-то время:
Как это работает
Сначала программа создает файл, открывает его для чтения и записи и затем заполняет файл данными. Далее задаются два участка: первый с 10-го по 30-й байт для разделяемой блокировки и второй с 40-го по 50-й байт для исключительной блокировки. Затем программа выполняет вызов
На рис. 7.1 показан этот сценарий с блокировками в тот момент, когда программа переходит к ожиданию.
Рис. 7.1
Сама по себе эта программа не очень полезна. Вам нужна вторая программа lock4.c для тестирования блокировок (упражнение 7.10).
В этом примере вы напишете программу, проверяющую блокировки разных типов, установленные для различных участков файла.