mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк 

Златоуст.Ru

 

 

MSGCTL(2)                                             MSGCTL(2)

НАЗВАНИЕ 
        msgctl - операции управления очередью сообщений

СИНТАКСИС 
        #include 
        #include 
        #include 

        int msgctl (msqid, cmd, buf)
        int msqid, cmd;
        struct msqid_ds *buf;

ОПИСАНИЕ 
        Системный вызов msgctl позволяет выполнять операции уп-
        равления очередью сообщений. Операция определяется зна-
        чением аргумента cmd, которое должно быть одним из сле-
        дующих:

        IPC_STAT 
             Поместить текущее значение каждого поля  структуры
             данных, ассоциированной с идентификатором  очереди
             сообщений msqid, в структуру, на которую указывает
             buf.  Содержимое  структуры  описано  в  intro(2).
             {Требуется право на чтение.}

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

                msg_perm.uid
                msg_perm.gid
                msg_perm.mode /* Только младшие 9 бит */
                msg_qbytes

             Это действие может выполняться  только  процессом,
             действующий  идентификатор  пользователя  которого
             равен либо идентификатору суперпользователя,  либо
             значению поля  msg_perm.cuid  или  msg_perm.uid  в
             структуре данных, ассоциированной с msqid.  Только
             суперпользователь может увеличивать значение  поля
             msg_qbytes.

        IPC_RMID 
             Удалить из системы идентификатор  очереди  сообще-
             ний, определяемый значением  msqid,  ликвидировать
             очередь сообщений и ассоциированную с ней структу-
             ру данных. Эта команда  может  выполняться  только
             процессом, который имеет действующий идентификатор
             пользователя, равный  либо  идентификатору  супер-
             пользователя, либо значению поля msg_perm.cuid или
             msg_perm.uid в структуре данных, ассоциированной с
             msqid.

        Системный вызов msgctl завершается неудачей,  если  вы-
        полнено хотя бы одно из следующих условий:

        [EINVAL]    Значение аргумента msgid не  является  кор-
                    ректным идентификатором очереди сообщений.

        [EINVAL]    Некорректное значение аргумента cmd,  опре-
                    деляющее выполняемое действие.

        [EACCES]    Значение аргумента cmd равно IPC_STAT и нет
                    прав на чтение у вызывающего процесса  [см.
                    intro(2)].

        [EPERM]     Значение аргумента cmd равно  IPC_RMID  или
                    IPC_SET и действующий идентификатор пользо-
                    вателя вызывающего  процесса  не  равен  ни
                    идентификатору суперпользователя, ни значе-
                    нию поля msg_perm.cuid или  msg_perm.uid  в
                    структуре данных, ассоциированной с msqid.

        [EPERM]     Значение аргумента cmd равно IPC_SET и была
                    предпринята попытка увеличить значение поля
                    msg_qbytes,   а  действующий  идентификатор
                    пользователя вызывающего процесса не  равен
                    идентификатору суперпользователя.

        [EFAULT]    Аргумент buf указывает за пределы  отведен-
                    ного процессу адресного пространства.

СМ. ТАКЖЕ 
        intro(2), msgget(2), msgop(2).

ДИАГНОСТИКА 
        При успешном завершении результат  равен  0;  в  случае
        ошибки возвращается -1, а переменной errno присваивает-
        ся код ошибки.



 

 

Бернадинер Марк Абрамович

Мое резюме

Компьютерная страничка

Ресурсы сети

Фотоальбом

 

 

 

mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк