[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
 Доступ к очереди сообщений

Для  получения   доступа  к   очереди  используется   системный  вызов
msgget(2). Его аргументы:

В качестве ключа key может быть использовано любое длинное целое. Ключ
может быть получен использованием ftok(3C) или значения IPC_PRIVATE.

msgflg управляет  созданием и  правами доступа  очереди. Его  значение
получается побитовым ИЛИ следующих констант:

.  IPC_CREAT - если не существует очереди с этим ключом, создает ее.

.  IPC_EXCL -  только вместе  с IPC_CREAT.  Очередь создается  тогда и
   только тогда,  когда ее  не существует. Иными словами, когда заданы
   IPC_CREAT |  IPC_EXCL, и  уже существует очередь с заданным ключом,
   системный вызов возвратит неуспех.

.  Девять младших  бит msgflg  используются для  задания прав доступа.
   Право чтения  определяет возможность  получать сообщения,  а  право
   записи - посылать их.

MSNMNI - системное ограничение на количество идентификаторов очередей.
Для машин  AT&T 3B2 значение  по умолчанию  равно 50.  Вызов msgget(2)
возвратит неуспех, если вы попытаетесь выйти за этот предел.
                      ДОСТУП К ОЧЕРЕДИ СООБЩЕНИЙ
msgget(2)

ИМЯ

     msgget - получить доступ к очереди сообщений

ИСПОЛЬЗОВАНИЕ

     #include <sys/types.h>
     #include <sys/ipc.h>
     #include <sys/msg.h>

     int msgget (key_T key, int
     msgflg);

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

     успех - неотрицательное число,
     идентификатор очереди сообщений

     неуспех - -1 и errno установлена