НАЗВАНИЕ
shmctl - операции управления разделяемыми сегментами памяти
СИНТАКСИС
#include <sys/types.h> #include <sys/ipc.h> #include <sys/shm.h>
int shmctl (shmid, cmd, buf) int shmid, cmd; struct shmid_ds *buf;
ОПИСАНИЕ
Системный вызов shmctl позволяет выполнять операции управления разделяемыми сегментами памяти. Операция определяется значением аргумента cmd, которое должно быть одним из следующих:
IPC_STAT Поместить текущие значения полей структуры данных, ассоциированной с идентификатором разделяемого сегмента shmid, в структуру, на которую указывает аргумент buf. Содержимое структуры описано в . {Требуется право на чтение.} IPC_SET Присвоить следующим полям структуры данных, ассоциированной с идентификатором shmid, соответствующие значения, находящиеся в структуре, на которую указывает аргумент buf:
shm_perm.uid shm_perm.gid shm_perm.mode /* Только младшие 9 бит */
Эта команда может выполняться только процессом, который имеет действующий идентификатор пользователя, равный либо идентификатору суперпользователя, либо значению поля shm_perm.cuid или shm_perm.uid в структуре, ассоциированной с идентификатором shmid. IPC_RMID Удалить из системы идентификатор разделяемого сегмента, заданный аргументом shmid, ликвидировать сегмент и ассоциированную с ним структуру данных. Эта команда может выполняться только процессом, который имеет действующий идентификатор пользователя, равный либо идентификатору суперпользователя, либо значению поля shm_perm.cuid или shm_perm.uid в структуре данных, ассоциированной с идентификатором shmid. SHM_LOCK Удержать в памяти разделяемый сегмент, специфицированный идентификатором shmid. Эта команда может выполняться только процессом, который имеет действующий идентификатор пользователя, равный идентификатору суперпользователя. SHM_UNLOCK Освободить разделяемой сегмент памяти, специфицированный идентификатором shmid. Эта команда может выполняться только процессом, который имеет действующий идентификатор пользователя, равный идентификатору суперпользователя.