[  Страница назад | Страница вперед  |  Содержание  |  Индекс  | Библиотека | 
Юридическая информация | 
Поиск ] 
 
Программирование: Разработка и отладка программ
Нет.
- Создайте ключ для
идентификации общего сегмента. Для этого вызовите функцию ftok. Например, для создания ключа
mykey с идентификатором проекта R, хранящимся в
переменной proj (тип char) и именем файла
null_file, воспользуйтесь следующим оператором: 
mykey = ftok( null_file, proj );
 - Выполните одно из
следующих действий: 
- Создайте общий сегмент
памяти с помощью функции shmget. Например, для создания
сегмента размером 4096 и присвоения значения shmid целочисленной
переменной mem_id, используйте следующее выражение: 
mem_id = shmget(mykey, 4096, IPC_CREAT | o666 );
 - Получите указатель на
ранее созданный общий сегмент с помощью функции shmget.
Например, для того чтобы получить ссылку на сегмент, ранее связанный с ключом
mykey и присвоить значение shmid целочисленной
переменной mem_id, укажите в программе оператор: 
mem_id = shmget( mykey, 4096, IPC_ACCESS );
 
 - Предоставьте общий
сегмент процессу с помощью функции shmat. Например, для
подключения созданного сегмента можно воспользоваться оператором 
ptr = shmat( mem_id );
В этом примере переменная ptr представляет собой указатель на
структуру, определяющую поля общего сегмента. Такая структура-шаблон
применяется для чтения и записи данных в общий сегмент. Шаблон должен
совпадать для всех процессов, работающих с общим сегментом.
 - Выполните необходимые
операции с данными сегмента, пользуясь шаблонной структурой.
 - Отключите общий сегмент
от процесса с помощью функции shmdt: 
shmdt( ptr );
 - Если общий сегмент
больше не нужен, удалите его с помощью функции shmctl: 
shmctl( mem_id, IPC_RMID, ptr );
 
Примечание:  Для получения информации о сегменте можно также
использовать команду  ipcs, а для удаления
сегмента - команду  ipcrm.
 
Отображение памяти - Основные сведения.
Отображение общих сегментов памяти с помощью процедуры shmat.
Создание отображенных файлов данных с помощью функции shmat.
Создание отображенного файла с записью по команде с помощью функции shmat.
Функции shmat, shmctl, shmdt,
shmget.
  [  Страница назад | Страница вперед  |  Содержание  |  Индекс  |
 
Библиотека | 
Юридическая информация | 
Поиск  ]