Индустрия программирования

Очереди сообщений


Четыре системных вызова:

  • msgget
    для образования новой очереди сообщений или получения дескриптора
    существующей очереди
  • msgsnd
    для посылки сообщения (его постановки в очередь сообщений)
  • msgrcv
    для приема сообщения (выборки сообщения из очереди)
  • msgctl для выполнения
    управляющих действий

msgqid = msgget(key, flag);


Сообщения хранятся в виде связного списка
Декскриптор очереди сообщений - индекс в массиве
заголовков очередей сообщений
В заголовке очереди хранятся:

  • указатели на первое и последнее сообщение в данной
    очереди
  • число сообщений
  • общий размер в байтах сообщений, находящихся в очереди
  • идентификаторы процессов, которые последними послали или приняли
    сообщение через данную очередь
  • временные метки последних выполненных операций msgsnd,
    msgrsv и msgctl




Содержание раздела