Книга: Программирование для Linux. Профессиональный подход
5.1.4. Подключение и отключение сегментов
5.1.4. Подключение и отключение сегментов
Чтобы сделать сегмент памяти общедоступным, процесс должен подключить его с помощью функции shmat()
. В первом ее аргументе передается идентификатор сегмента, возвращенный функцией shmget()
. Второй аргумент — это указатель, определяющий, где в адресном пространстве процесса необходимо создать привязку на совместно используемую область памяти. Если задать значение NULL
, ОС Linux выберет первый доступный адрес. Третий аргумент может содержать следующие флаги.
? SHM_RND
. Указывает на то, что адрес, заданный во втором параметре, должен быть округлен, чтобы стать кратным размеру страницы. Если этот флаг не указан, необходимо самостоятельно позаботиться о выравнивании сегмента по границе страницы.
? SHM_RDONLY
. Указывает на то. что сегмент доступен только для чтения, но не для записи.
В случае успешного завершения функция возвращает адрес подключенного сегмента. Дочерний процесс, созданный функцией fork()
, унаследует этот адрес и в случае необходимости сможет отключить сегмент.
По завершении работы с сегментом его необходимо отключить с помощью функции shmdt()
. Ей следует передать адрес, возвращаемый функцией shmat()
. Если текущий процесс был последним, кто ссылался на сегмент, сегмент удаляется из памяти. Функции exit()
и exec()
автоматически отключают сегменты.
- Отключение питания
- Включение и отключение синхронного вывода
- Задняя панель компьютера. Подключение нового компьютера
- Часть II Компьютерные сети и подключение к Интернету
- Подключение к Интернету
- Как осуществляется подключение новых устройств к компьютеру?
- Подключение к персональному компьютеру
- Как в Сетевых подключениях создать значок Подключение по локальной сети?
- Когда звонит телефон, начинает загружаться компьютер. Помогает только отключение кабеля от модема. Почему так происходит...
- Стоит ли заниматься отключением ненужных служб при большом объеме оперативной памяти?
- 3.7. Подключение к сети Интернет
- Рис. 201. Выберите "Через высокоскоростное подключение, запрашивающее имя пользователя и пароль"