[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
 Получение доступа к набору семафоров

Системный вызов semget(2) используется для получения доступа к
набору из одного или нескольких семафоров. При успехе, он
возвращает идентификатор набора семафоров. Аргументы semget(2):
  key     Ключ доступа  к набору.  Похож на  имя файла.  В качестве
          ключа  может   использоваться   любое   целое   значение.
          Различные  пользователи  набора  должны  договориться  об
          уникальном  значении   ключа.  Ключ   может  быть  создан
          библиотечной функцией  ftok(3). Если  необходим приватный
          ключ, может быть использовано значение IPC_PRIVATE.

  nsems   Количество семафоров  в наборе.  Это значение должно быть
          больше или  равно  1.  Семафор  задается  идентификатором
          набора и  индексом в этом наборе. Индекс меняется от нуля
          до nsems-1.

  semflg  Биты прав  доступа и  флаги,  используемые  при  создании
          набора. Девять  младших битов  задают права  доступа  для
          хозяина,  группы   и  других  пользователей.  Для  набора
          семафоров определены  права  чтения  и  изменения.  Флаги
          таковы:

          IPC_CREAT Если  этот   флаг   установлен   и   набор   не
                         существует, он будет создан. Если же набор
                         с таким  ключом уже  существует и не задан
                         флаг IPC_EXCL,  то semget(2) возвратит его
                         идентификатор.

          IPC_EXCL       Этот флаг  используется  только  вместе  с
                         IPC_CREAT. Он используется для того, чтобы
                         создать набор  только тогда,  когда такого
                         набора еще  не существует. Этот флаг похож
                         на O_EXCL при создании файлов.

Следующие системные параметры ограничивают вызов semget(2):
  SEMMNI  системное    ограничение    количества    идентификаторов
          семафоров (по умолчанию 10).

  SEMMNS  максимальное общее  количество семафоров  в  системе  (по
          умолчанию 60).

  SEMMSL  максимальное количество  семафоров  в  одном  наборе  (по
          умолчанию 25).
               ПОЛУЧЕНИЕ ДОСТУПА К НАБОРУ СЕМАФОРОВ
semget(2)

ИМЯ

          semget - получить доступ к набору семафоров


ИСПОЛЬЗОВАНИЕ

          #include <sys/types.h>
          #inlcude <sys/ipc.h>
          #include <sys/sem.h>

          int semget (key_t key, int
                         nitems, int semfl)


ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

          успех - неотрицательный идентификатор семафора

          неуспех - -1 и errno установлена