The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Каталог документации / Раздел "Документация для Linux" / Оглавление документа
next up previous contents index
Next: Программа-пример Up: Управление очередями сообщений Previous: Управление очередями сообщений   Contents   Index

Использование msgctl

В справочной статье msgctl синтаксис данного системного вызова описан так:

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

        int msgctl (msqid, cmd, buf)
        int msqid, cmd;
        struct msqid_ds *buf;
При успешном завершении результат равен нулю; в случае неудачи возвращается -1.

В качестве аргумента msqid должен выступать идентификатор очереди сообщений, предварительно полученный при помощи системного вызова msgget.

Управляющее действие определяется значением аргумента cmd. Допустимых значений три:

IPC_STAT

Поместить информацию о состоянии очереди, содержащуюся в структуре данных, ассоциированной с идентификатором msqid, в пользовательскую структуру, на которую указывает аргумент buf.

IPC_SET

В структуре данных, ассоциированной с идентификатором msqid, переустановить значения действующих идентификаторов пользователя и группы, прав на операции, максимально допустимого числа байт в очереди.

IPC_RMID

Удалить из системы идентификатор msqid, ликвидировать чередь сообщений и ассоциированную с ней структуру данных.

Чтобы выполнить управляющее действие IPC_SET или IPC_RMID, процесс должен иметь действующий идентификатор пользователя, равный либо идентификаторам создателя или владельца очереди, либо идентификатору суперпользователя. Чтобы выполнить действие IPC_STAT, требуется право на чтение.



Alex Otwagin 2002-12-16



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру