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




SHMCTL(2) - часть 2


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

[EINVAL] Значение аргумента shmid не является корректным идентификатором разделяемого сегмента. [EINVAL] Некорректное значение аргумента cmd, определяющее команду. [EACCES] Значение аргумента cmd равно IPC_STAT, но у вызывающего процесса нет прав на выполнение операции чтения [см. ]. [EPERM] Значение аргумента cmd равно IPC_RMID или IPC_SET, а действующий идентификатор пользователя вызывающего процесса не равен ни идентификатору суперпользователя, ни значению поля shm_perm.cuid или shm_perm.uid в структуре данных, ассоциированной с идентификатором shmid. [EPERM] Значение аргумента cmd равно SHM_LOCK или SHM_UNLOCK, а действующий идентификатор пользователя вызывающего процесса не равен идентификатору суперпользователя. [EFAULT] Аргумент buf указывает за пределы отведенного процессу адресного пространства. [ENOMEM] Значение аргумента cmd равно SHM_LOCK и нет достаточного об ема памяти в системе.

СМ. ТАКЖЕ


, .

ДИАГНОСТИКА


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

ПРИМЕЧАНИЯ


Необходимо явно удалять разделяемый сегмент памяти после того, как удаляется последняя ссылка на него.




Содержание  Назад  Вперед