Системное ПО
Системное ПО
Системное ПО
Системное ПО
Системное ПО
Системное ПО
Системное ПО
Системное ПО
Системное ПО
398.00K

Системное ПО. Блокировки файлов

1. Системное ПО

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

2. Системное ПО

Совместный доступ к
файлам
dwDesiredAccess определяет желаемые права доступа к файлу
dwShareMode определяет способ совместного использования
файла с другими процессами
Файл не может быть открыт в случае конфликта
доступа
В случае конфликта функция CreateFile вернет
INVALID_HANDLE_VALUE
Более подробную информацию можно узнать с помощью
функции GetLastError

3. Системное ПО

Пример 1. Совместная работа с файлом
Совместный доступ к
файлам
Для теста запущено два
экземпляра программы
Оба экземпляра могут
работать с файлом, несмотря
на сообщение, полученное во
втором запуске

4. Системное ПО

Пример 2. Совместный доступ только для чтения
Совместный доступ к
файлам
Для теста запущено два
экземпляра программы
При запуске первого
экземпляра определен
совместный доступ только
для чтения
При запуске второго
произошел конфликт, так как
был запрошен доступ для
записи

5. Системное ПО

Пример 3. Различные режимы совместного
доступа
Процесс 1
Совместный доступ к
файлам
Процесс 2
Конфликта нет,
оба процесса
запрашивают
допустимые права

6. Системное ПО

Блокировка части
файла
Функция блокирует регион
файла. Если регион уже
заблокирован, ожидает
разблокировки
Константа для dwFlags
Описание
LOCKFILE_EXCLUSIVE_
LOCK
Полная блокировка. Иначе возможно чтение
LOCKFILE_FAIL_IMMEDI
ATELY
Функция возвращает управление
немедленно. Иначе ждет окончания
блокировки

7. Системное ПО

Блокировка части файла
Процесс 1. Блокирует
байты 3-7 (с нулевого)
Процесс 2. Работает с
байтами 0-10

8. Системное ПО

Блокировка части файла
Флаг LOCKFILE_EXCLUSIVE_LOCK не
использовался. Возможно чтение
заблокированного участка, но невозможна
запись.

9. Системное ПО

Процесс 2. Работает с
байтами 0-10
Блокировка части файла
Процесс 2 ожидает
завершения процесса
1, и только затем
работает с файлом
English     Русский Правила