[<<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 установлена