Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Скидка до 20% на услуги дата-центра. Аренда серверной стойки. Colocation от 1U!

Миграция в облако #SotelCloud. Виртуальный сервер в облаке. Выбрать конфигурацию на сайте!

Виртуальная АТС для вашего бизнеса. Приветственные бонусы для новых клиентов!

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

4VPS.SU - VPS в 17-ти странах

2Gbit/s безлимит

Современное железо!

SHMCTL(2)

НАЗВАНИЕ
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. Содержимое структуры описано в intro(2). {Требуется право на чтение.}
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. Эта команда может выполняться только процессом, который имеет действующий идентификатор пользователя, равный идентификатору суперпользователя.

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

[EINVAL]
Значение аргумента shmid не является корректным идентификатором разделяемого сегмента.
[EINVAL]
Некорректное значение аргумента cmd, определяющее команду.
[EACCES]
Значение аргумента cmd равно IPC_STAT, но у вызывающего процесса нет прав на выполнение операции чтения [см. intro(2)].
[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 и нет достаточного об ема памяти в системе.

СМ. ТАКЖЕ
shmget(2), shmop(2).

ДИАГНОСТИКА
При успешном завершении результат равен 0; в случае ошибки возвращается -1, а переменной errno присваивается код ошибки.

ПРИМЕЧАНИЯ
Необходимо явно удалять разделяемый сегмент памяти после того, как удаляется последняя ссылка на него.

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

✅ Дешевый VPS-хостинг на AMD EPYC: 1vCore, 3GB DDR4, 15GB NVMe всего за €3,50!

🔥 Anti-DDoS защита 12 Тбит/с!

VPS в России, Европе и США

Бесплатная поддержка и администрирование

Оплата российскими и международными картами

🔥 VPS до 5.7 ГГц под любые задачи с AntiDDoS в 7 локациях

💸 Гифткод CITFORUM (250р на баланс) и попробуйте уже сейчас!

🛒 Скидка 15% на первый платеж (в течение 24ч)

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...