Книга: Программирование для Linux. Профессиональный подход

5.1.5. Контроль и освобождение совместно используемой памяти

5.1.5. Контроль и освобождение совместно используемой памяти

Функция shmctl() возвращает информацию о совместно используемом сегменте и способна модифицировать его. Первым параметром является идентификатор сегмента.

Чтобы получить информацию о сегменте, укажите в качестве второго параметра константу IPC_STAT, а в третьем параметре передайте указатель на структуру shmid_ds.

Чтобы удалить сегмент, передайте во втором параметре константу IPC_RMID, а в третьем параметре — NULL. Сегмент удаляется, когда последний подключивший его процесс отключает сегмент.

Каждый совместно используемый сегмент должен явно освобождаться с помощью функции shmctl(), чтобы случайно не был превышен системный лимит на общее число таких сегментов. Функции exit() и exec() отключают сегменты, но не освобождают их.

Описание других операций, выполняемых над совместно используемыми сегментами памяти, можно найти на man-странице функции shmctl().

Оглавление книги


Генерация: 1.340. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз