Архитектура операционной системы 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 След. >|