Архитектура операционной системы UNIX   ::   Бах Морис Дж.

Страница: 698 из 715

mode (9 младших разрядов структуры msg_perm) и mgr_qbytes всоответствии со значениями, содержащимися в буфере

IPC_RMID Удалить из системы очередь сообщений с идентификатором id

мsgget

#include ‹sys/types.h›

#include ‹sys/ipc.h›

#include ‹sys/msg.h›

msgget(key, flag)

key_t key;

int flag;

Функция msgget возвращает идентификатор очереди сообщений, имя которой указано в key. Параметр key может указывать на то, что возвращаемый идентификатор относится к частной очереди (IPC_PRIVATE), в этом случае создается новая очередь сообщений. С помощью параметра flag можно сделать указание о необходимости создания очереди (IPC_CREAT), а также о том, что создание очереди должно выполняться монопольно (IPC_EXCL). В последнем случае, если очередь уже существует, функция msgget дает отказ.

мsgsnd и msgrcv

#include ‹sys/types.h›

#include ‹sys/ipc.h›

#include ‹sys/msg.h›

msgsnd(id, msgp, size, flag)

int id, size, flag;

struct msgbuf *msgp;

msgrcv(id, msgp, size, type, flag)

int id, size, type, flag;

struct msgbuf *msgmp;

Функция msgsnd посылает сообщение указанного размера в байтах (size) из буфера msgp в очередь сообщений с идентификатором id. Структура msgbuf определена следующим образом:

struct msgbuf {

 long mtype;

 char mtext[];

};

Если в параметре flag бит IPC_NOWAIT сброшен, функция msgsnd будет приостанавливаться в тех случаях, когда размер отдельного сообщения или число сообщений в системе превышают допустимый максимум. Если бит IPC_NOWAIT установлен, функция msgsnd в этих случаях прерывает свое выполнение. Функция msgrcv принимает сообщение из очереди с идентификатором id.

|< Пред. 696 697 698 699 700 След. >|

Java книги

Контакты: [email protected]