10.7. Блокирование файлов

10.7. Блокирование файлов

Вернемся к задаче о порядковом номере из главы 9. Здесь мы напишем новые версии функций my_lock и my_unlосk, использующие именованные семафоры Posix. В листинге 10.10 приведен текст этих функций.

Листинг 10.10. Блокирование файла с помощью именованных семафоров Posix

//lock/lockpxsem.c

1  #include "unpipc.h"

2  #define LOCK_PATH "pxsemlock"

3  sem_t *locksem;

4  int initflag;

5  void

6  my_lock(int fd)

7  {

8   if (initflag == 0) {

9    locksem = Sem_open(Px_ipc_name(LOCK_PATH), O_CREAT, FILE_MODE, 1);

10   initflag = 1;

11  }

12  Sem_wait(locksem);

13 }

14 void

15 my_unlock(int fd)

16 {

17  Sem_post(locksem);

18 }

Один из семафоров используется для рекомендательной блокировки доступа к файлу и инициализируется единицей при первом вызове функции. Для получения блокировки мы вызываем sem_wait, а для ее снятия — sem_post.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Блокирование активного содержимого

Из книги Компьютер на 100. Начинаем с Windows Vista автора Зозуля Юрий

Блокирование активного содержимого Веб-страницы могут содержать не только тексты и рисунки, но и специальные программные модули, расширяющие возможности веб-страниц и позволяющие сделать их интерактивными. Однако в то же время этими средствами могут воспользоваться


Блокирование объектов

Из книги ArchiCAD 11 автора Днепров Александр Г

Блокирование объектов В заключение главы, посвященной редактированию объектов, упомяну о механизме, позволяющем избежать случайного изменения объектов или их свойств. В ArchiCAD имеется способ заблокировать необходимые объекты от редактирования. Для этого следует


Блокирование объектов

Из книги ArchiCAD. Начали! автора Орлов Андрей Александрович

Блокирование объектов В заключение главы, посвященной редактированию объектов, упомянем о механизме, позволяющем избежать случайного изменения объектов или их свойств. В ArchiCAD есть способ защитить необходимые объекты от редактирования. Для этого следует выделить их и


17.4.7. Блокирование нежелательных корреспондентов

Из книги Самоучитель работы на компьютере автора Колисниченко Денис Николаевич

17.4.7. Блокирование нежелательных корреспондентов Если вам надоел какой-то корреспондент и вы больше не хотите получать от него письма, можете внести его в список блокируемых. Для этого щелкните на любом письме от этого корреспондента и выполните команду меню Сообщение,


11. Блокирование Tor и как с ним бороться

Из книги Установка и настройка Tor автора Стручков Юрий

11. Блокирование Tor и как с ним бороться Система Tor позволяет скрывать от провайдера конечные (целевые) адреса, тем самым прорывая возможную блокаду доступа к заблокированным им сетевым ресурсам. Также система Tor скрывает от целевых ресурсов адрес отправителя, тем самым


9.2. Блокирование записей и файлов

Из книги Системное программирование в среде Windows автора Харт Джонсон М

9.2. Блокирование записей и файлов Ядро Unix никак не интерпретирует содержимое файла, оставляя всю обработку записей приложениям, работающим с этим файлом. Тем не менее для описания предоставляемых возможностей используется термин «блокировка записей». В


9.8. Блокирование файлов

Из книги Linux программирование в примерах автора Роббинс Арнольд

9.8. Блокирование файлов Стандарт Posix.1 гарантирует, что если функция open вызывается с флагами O_CREAT (создать файл, если он еще не существует) и O_EXCL (исключающее открытие), функция возвращает ошибку, если файл уже существует. Более того, проверка существования файла и его


9.9. Блокирование в NFS

Из книги Дело о реформе копирайта автора Энгстрём Кристиан

9.9. Блокирование в NFS Аббревиатура NFS расшифровывается как Network File System (сетевая файловая система); эта система подробно обсуждается в главе 29 [22]. Блокировка записей fcntl представляет собой расширение NFS, поддерживаемое большинством ее реализаций. Обслуживается эта


10.7. Блокирование файлов

Из книги Операционная система UNIX автора Робачевский Андрей М.

10.7. Блокирование файлов Вернемся к задаче о порядковом номере из главы 9. Здесь мы напишем новые версии функций my_lock и my_unlосk, использующие именованные семафоры Posix. В листинге 10.10 приведен текст этих функций.Листинг 10.10. Блокирование файла с помощью именованных семафоров


11.6. Блокирование файлов

Из книги UNIX: разработка сетевых приложений автора Стивенс Уильям Ричард

11.6. Блокирование файлов С помощью семафоров System V можно реализовать еще одну версию функций my_lock и my_unlock из листинга 10.10. Новый вариант приведен в листинге 11.6.Листинг 11.6. Блокировка файлов с помощью семафоров System V//lock/locksvsem.c1  #include "unpipc.h"2  #define LOCK_PATH "/tmp/svsemlock"3  #define MAX_TRIES


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

Из книги автора

Блокирование файлов В системах, допускающих одновременное выполнение нескольких процессов, особую актуальность приобретает проблема координации и синхронизации доступа к разделяемым (совместно используемым) объектам, например файлам.В Windows имеется возможность


14.2.3. Блокирование BSD: flock()

Из книги автора

14.2.3. Блокирование BSD: flock() 4.2 BSD представило свой собственный механизм блокировки, flock()[155]. Функция объявлена следующим образом:#include <sys/file.h> /* Обычный */int flock(int fd, int operation);Дескриптор fd представляет открытый файл. Имеются следующие операции:LOCK_SH  Создает совместную


Цензура и блокирование интернета

Из книги автора

Цензура и блокирование интернета http://habrahabr.ru/post/155295/Этапы введения цензуры в интернете 2007–201218 октября 2012 в 19:22.Копирайт: Dura Lex.Глядя на то, как в отдельных областях России блокируется youtube и ubuntu, я не мог не вспомнить, как Кристиан Энгстрём и Рик Фальквинге в брошюре,


Блокирование доступа к файлу

Из книги автора

Блокирование доступа к файлу Традиционно архитектура файловой подсистемы UNIX разрешает нескольким процессам одновременный доступ к файлу для чтения и записи. Хотя операции записи и чтения, осуществляемые с помощью системных вызовов read(2) или write(2), являются атомарными, в