Архитектура операционной системы UNIX   ::   Бах Морис Дж.

Страница: 703 из 715

array

IPC_STAT считать структуру заголовка семафора с идентификатором id в буфер arg.buf

IPC_SET установить значения переменных sem_perm.uid, sem_perm.gid и sem_perm.mode (младшие 9 разрядов структуры sem_perm) в соответствии с содержимым буфера arg.buf

IPC_RMID удалить семафоры, связанные с идентификатором id, из системы

Параметр num возвращает на количество семафоров в обрабатываемом наборе. Структура semid_ds определена следующим образом:

struct semid_ds {

 struct ipc_perm sem_perm; /* структура, описывающая права доступа */

 int * pad; /* используется системой */

 ushort sem_nsems; /* количество семафоров в наборе */

 time_t sem_otime; /* время выполнения последней операции над семафором */

 time_t sem_ctime; /* время последнего изменения */

};

Структура ipc_perm имеет тот же вид, что и в функции msgctl.

semget

#include ‹sys/types.h›

#include ‹sys/ipc.h›

#include ‹sys/sem.h›

semget(key, nsems, flag)

key_t key;

int nsems, flag;

Функция semget создает массив семафоров, корреспондирующий с параметром key. Параметры key и flag имеют тот же смысл, что и в функции msgget.

semор

semop(id, ops, num)

int id, num;

struct sembuf **ops;

Функция semop выполняет набор операций, содержащихся в структуре ops, над массивом семафоров, связанных с идентификатором id. Параметр num содержит количество записей, составляющих структуру ops. Структура sembuf определена следующим образом:

struct sembuf {

 short sem_num; /* номер семафора */

 short sem_op; /* тип операции над семафором */

 short sem_flg; /* флаг */

};

Переменная sem_num содержит указатель в мас�

|< Пред. 701 702 703 704 705 След. >|

Java книги

Контакты: [email protected]