Очереди сообщений
Четыре системных вызова:
- msgget
для образования новой очереди сообщений или получения дескриптора
существующей очереди
- msgsnd
для посылки сообщения (его постановки в очередь сообщений)
- msgrcv
для приема сообщения (выборки сообщения из очереди)
- msgctl для выполнения
управляющих действий
msgqid = msgget(key, flag);
Сообщения хранятся в виде связного списка
Декскриптор очереди сообщений - индекс в массиве
заголовков очередей сообщений
В заголовке очереди хранятся:
- указатели на первое и последнее сообщение в данной
очереди
- число сообщений
- общий размер в байтах сообщений, находящихся в очереди
- идентификаторы процессов, которые последними послали или приняли
сообщение через данную очередь
- временные метки последних выполненных операций msgsnd,
msgrsv и msgctl