Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемГеоргий Чиркунов
1 ЗАХВАТ ФАЙЛОВ И ЗАПИСЕЙ Системные вызовы и библиотеки Unix SVR4
2 По завершению этого раздела вы будете знать, что такое захват файлов и записей знать, что такое захват записей сможете установить захват файла по чтению и по изменению получить информацию о захвате файла
3 ЧТО ТАКОЕ ЗАХВАТ ЗАПИСИ И ФАЙЛА? Совместные процессы работают вместе, выполняя определенным образом одну задачу. Запись - это последовательный набор байтов в файле Захват записи по чтению (разделяемый доступ) не дает другим процессам установить захват записи по изменению Захват записи по изменению (эксклюзивный доступ) не дает другим процессам установить захват записи по чтению/изменению, пока этот захват по изменению не будет снят Допустимое захватывание (advisory lock): захват записи проверяется прикладной программой перед попыткой установки захвата Обязательное захватывание (mandatory lock): захват записи проверяется ядром перед выполнением операций ввода/вывода
4 Mandatory/advisory По умолчанию захват происходит в advisory режиме Mandatory locking включается атрибутом файла: bash>chmod +l file Не работает на NFS (ваши домашние каталоги подключаются по NFS). Используйте /tmp
5 Установка захвата #include int fcntl(int fildes, int cmd, struct flock *arg); значения cmd F_GETLK получить информацию о захвате записи F_SETLK установить захват записи F_SETLKW установить захват записи (с блокировкой)
6 struct flock typedef struct flock { short l_type; /* F_RDLCK, F_WRLCK, F_UNLCK */ short l_whence; /* SEEK_SET, SEEK_CUR, SEEK_END */ off_t l_start; off_t l_len; /* len == 0 means until end of file */ long l_sysid; pid_t l_pid; long pad[4]; /* reserve area */ } flock_t;
7 lockf (3C) ИСПОЛЬЗОВАНИЕ #include int lockf (int fildes, int function, long size); ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ успех - 0 неуспех - -1 и errno установлена
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.