Системный вызов shmctl

Прототип системного вызова

#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>

int shmctl(int shmid, int cmd, struct shmid_ds *buf);

Описание системного вызова

Системный вызов shmctl предназначен для получения информации об области разделяемой памяти, изменения ее атрибутов и удаления ее из системы. Данное описание не является полным описанием системного вызова, а ограничивается рамками текущего курса. Для изучения полного описания обращайтесь к UNIX man.

В нашем курсе мы будем пользоваться системным вызовом shmctl только для удаления области разделяемое памяти из системы. Параметр shmid является дескриптором System V IPC для сегмента разделяемой памяти, т.е. значением, которое вернул системный вызов shmget() при создании сегмента или при его поиске по ключу.
В качестве параметра cmd в рамках нашего
курса мы всегда будем передавать значение IPC_RMID - команду для удаления сегмента разделяемой памяти с заданным идентификатором. Параметр buf для этой команды не используется, поэтому мы всегда будем подставлять туда значение NULL.

Возвращаемое значение

Системный вызов возвращает значение 0 при нормальном завершении и значение -1 при возникновении ошибки.