Книга: Программирование для Linux. Профессиональный подход
5.1.5. Контроль и освобождение совместно используемой памяти
5.1.5. Контроль и освобождение совместно используемой памяти
Функция shmctl()
возвращает информацию о совместно используемом сегменте и способна модифицировать его. Первым параметром является идентификатор сегмента.
Чтобы получить информацию о сегменте, укажите в качестве второго параметра константу IPC_STAT
, а в третьем параметре передайте указатель на структуру shmid_ds
.
Чтобы удалить сегмент, передайте во втором параметре константу IPC_RMID
, а в третьем параметре — NULL
. Сегмент удаляется, когда последний подключивший его процесс отключает сегмент.
Каждый совместно используемый сегмент должен явно освобождаться с помощью функции shmctl()
, чтобы случайно не был превышен системный лимит на общее число таких сегментов. Функции exit()
и exec()
отключают сегменты, но не освобождают их.
Описание других операций, выполняемых над совместно используемыми сегментами памяти, можно найти на man
-странице функции shmctl()
.
- 5.1. Совместно используемая память
- 5.1.3. Выделение сегментов памяти
- 3.2.1.2. Начальное выделение памяти: malloc()
- Контрольные вопросы
- Неисправности оперативной памяти
- Запуск сценариев на удаленных машинах. Контроль за ходом выполнения таких сценариев
- Как работает модуль оперативной памяти
- Описание типов модулей оперативной памяти
- Извлечение и установка модулей памяти
- Характеристики модулей памяти
- ПО для диагностики оперативной памяти
- Поиск и устранение неисправностей модулей памяти