Архитектура операционной системы UNIX :: Бах Морис Дж.
Страница:
704 из 715
Структура sembuf определена следующим образом:
struct sembuf {
short sem_num; /* номер семафора */
short sem_op; /* тип операции над семафором */
short sem_flg; /* флаг */
};
Переменная sem_num содержит указатель в массиве семафоров, ассоциированный с данной операцией, а переменная sem_flg — флаги для данной операции. Переменная sem_op может принимать следующие значения:
отрицательное если сумма значения семафора и значения sem_op ›= 0, значение семафора изменяется на величину sem_op; в противном случае, функция приостанавливает свое выполнение, если это разрешено флагом
положительное увеличить значение семафора на величину sem_op
нулевое если значение семафора равно 0, продолжить выполнение; в противном случае, приостановить выполнение, если это разрешается флагом
Если для данной операции в переменной sem_flg установлен флаг IPC_NOWAIT, функция semop возвращает управление немедленно в тех случаях, когда она должна была бы приостановиться. Если установлен флаг SEM_UNDO, восстанавливается предыдущее значение семафора (sem_op вычитается из текущей суммы типов операций). Когда процесс завершится, значение семафора будет увеличено на эту сумму. Функция semop возвращает значение последней операции над семафором.
setpgrр
setpgrp()
Функция setpgrp приравнивает значение идентификатора группы, к которой принадлежит текущий процесс, значению идентификатора самого процесса и возвращает новое значение идентификатора группы.
setuid
setuid(uid)
int uid;
setgid(gid)
int gid;
Функция setuid устанавливает значения фактического и исполнительного кодов идентификации пользователя текущего процесса.
|< Пред. 702 703 704 705 706 След. >|