[<<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 установлена