ВУЗ:
Составители:
90
Прототипы перечисленных системных вызовов описаны в файлах
#inсlude <sys/ipc.h>
#inсlude <sys/sem.h>
Системный вызов semget имеет синтаксис
int semid = semget (key_t key, int count, int flag)
параметрами которого является ключ или уникальное имя сегмента
(key), набора семафоров и дополнительные флаги (flag), определенные в
<sys/ipc.h>, число семафоров в наборе семафоров (count), обладающих
одним и тем же ключом. Системный вызов возвращает идентификатор
набора семафоров semid. Живучесть такого семафора определяется жи-
вучестью ядра, т. е. объект семафор будет уничтожен тогда и только то-
гда, когда произойдет перезагрузка ядра либо его принудительно уда-
лят. После вызова semget индивидуальный семафор идентифицируется
идентификатором набора семафоров и номером семафора в этом набо-
ре. Флаги системного вызова semget приведены ниже в таблице.
Таблица 4.1
Флаги системного вызова semge
Флаг Описание
IPC_CREAT
Вызов semget создает новый семафор для данного
ключа. Если флаг IPC_CREAT не задан, а набор се-
мафоров с указанным ключом уже существует, то
обращающийся процесс получит идентификатор
существующего набора семафоров
IPC_EXLC
Флаг IPC_EXLC вместе с флагом IPC_CREAT пред-
назначен для создания (и только для создания) на-
бора семафоров. Если набор семафоров уже суще-
ствует, semget возвратит -1, а системная переменная
errno будет содержать значение EEXIST
Младшие 9 бит флага задают права доступа к набору семафоров
(табл. 4.2).
Таблица 4.2
Константы режима доступа при создании нового объекта IPC
Константа Описание
S_IRUSR Владелец – чтение
S_IWUSR Владелец – запись
S_IRGRP Группа – чтение
S_IWGRP Группа – запись
S_IROTH Прочие – чтение
S_IWOTH Прочие – запись
Страницы
- « первая
- ‹ предыдущая
- …
- 88
- 89
- 90
- 91
- 92
- …
- следующая ›
- последняя »
