Unix Man (Справочное руководство)


SEMCTL(2) - часть 2


Системный вызов semctl завершается неудачей, если выполнено хотя бы одно из следующих условий:

[EINVAL] Значение аргумента semid не является корректным идентификатором множества семафоров. [EINVAL] Номер семафора semnum меньше 0 или превышает значение sem_nsems. [EINVAL] Некорректное значение аргумента cmd, определяющее команду. [EACCES] Нет прав на выполнение операции у вызывающего процесса. [ERANGE] Значение аргумента cmd равно SETVAL или SETALL и значение, которое присваивается семафору, больше максимально допустимого в системе. [EPERM] Значение аргумента cmd равно IPC_RMID или IPC_SET и действующий идентификатор пользователя вызывающего процесса не равен ни идентификатору суперпользователя, ни значению поля sem_perm.cuid или sem_perm.uid в структуре данных, ассоциированной с идентификатором semid. [EFAULT] Значение arg.buf указывает за пределы отведенного процессу адресного пространства.

СМ. ТАКЖЕ


, , .

ДИАГНОСТИКА


При успешном завершении системного вызова возвращаются следующие значения, в зависимости от команды cmd:

GETVALЗначение семафора semval.
GETPIDИдентификатор процесса sempid.
GETNCNTЗначение semncnt.
GETZCNTЗначение semzcnt.

Результат успешного выполнения остальных операций равен 0.

В случае ошибки возвращается -1, а переменной errno присваивается код ошибки.




Начало  Назад  Вперед