Int msgctl (int msgqid, int command, struct msqid_ds *msg_stat)
используется
для опроса состояния описателя очереди сообщений (command = IPC_STAT) и помещения его в структуру msg_stat (детали опускаем);
изменения его состояния (command = IPC_SET), например, изменения прав доступа к очереди;
для уничтожения указанной очереди сообщений (command = IPC_RMID).
III. Работа с разделяемой памятью.
Для работы с разделяемой памятью используются системные вызовы:
shmget() создает новый сегмент разделяемой памяти или находит существующий сегмент с тем же ключом;
shmat() подключает сегмент с указанным описателем к виртуальной памяти обращающегося процесса;
shmdt() отключает от виртуальной памяти ранее подключенный к ней сегмент с указанным виртуальным адресом начала;
shmctl() служит для управления разнообразными параметрами, связанными с существующим сегментом.
Прототипы перечисленных системных вызовов описаны в файлах
#include <sys/ipc.h>
#include <sys/shm.h>
После того, как сегмент разделяемой памяти подключен к виртуальной памяти процесса, этот процесс может обращаться к соответствующим элементам памяти с использованием обычных машинных команд чтения и записи.
Системный вызов
Содержание раздела