The OpenNET Project / Index page

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

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

msgctl (2)
  • msgctl (2) ( Solaris man: Системные вызовы )
  • >> msgctl (2) ( Русские man: Системные вызовы )
  • msgctl (2) ( Linux man: Системные вызовы )
  • msgctl (3) ( FreeBSD man: Библиотечные вызовы )
  • msgctl (3) ( POSIX man: Библиотечные вызовы )
  •  

    НАЗВАНИЕ

    msgctl - выполняет контрольные операции над сообщениями  

    СИНТАКСИС

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

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

    ОПИСАНИЕ

    Эта функция выполняет контрольную операцию, заданную в cmd, над очередью сообщений msqid. Возможные значения cmd:
    IPC_STAT
    Скопировать информацию из структуры данных очереди сообщений, ассоциированных с msqid в структуру с адресом buf (причем, у вызывающего должны быть права на чтение очереди сообщений).
    IPC_SET
    Записать значения некоторых элементов структуры msqid_ds , адрес которой указан в buf, в структуру данных из очереди сообщений, обновляя при этом его поле msg_ctime.

    Следующие элементы структуры могут быть обновлены:

    
            msg_perm.uid
            msg_perm.gid
            msg_perm.mode   /* только неосновные 9 битов */
            msg_qbytes
    

    Вызывающий процесс должен иметь соответствующие (вероятнее всего для root) привилегии или его действующий идентификатор пользователя должен соответствовать создателю (msg_perm.cuid) или владельцу (msg_perm.uid) очереди сообщений. Соответствующие (root) привилегии требуются для установки значения msg_qbytes больше, чем MSGMNB.

    IPC_RMID
    Немедленно удалить очередь сообщений и связанную с ним структуру данных, "разбудив" все процессы, ожидающие записи или чтения этой очереди (при этом функция возвращает ошибку, а переменная errno приобретает значение EIDRM). Вызывающий процесс должен иметь соответствующие (вероятнее всего для root) привилегии или его действующий идентификатор пользователя должен соответствовать создателю или владельцу очереди сообщений.
     

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

    При удачном завершении вызова возвращаемое значение равно нулю. При ошибке возвращается -1, а переменной errno присваивается номер ошибки.  

    НАЙДЕННЫЕ ОШИБКИ

    При ошибках errno устанавливается в одно из следующих значений:
    EACCES
    Значение параметра cmd равно IPC_STAT, но у вызывающего процесса нет прав на чтение очереди сообщений msqid.
    EFAULT
    Значение параметра cmd равно IPC_SET или IPC_STAT, но адрес, указанный в buf недоступен.
    EIDRM
    Очередь сообщений удалена.
    EINVAL
    Задано неправильное значение cmd или msqid.
    EPERM
    Значение параметра cmd равно IPC_SET или IPC_RMID, но вызывающий процесс имеет недостаточно прав для исполнения команды.

     

    ЗАМЕЧАНИЯ

    Контрольные вызовы IPC_INFO, MSG_STAT и MSG_INFO посылаются программой ipcs(8) для получения информации об используемых ресурсах. В будущем эти функции могут быть изменены или перенесены в интерфейс файловой системы proc.

    Многие поля в структуре struct msqid_ds Linux 2.2 были короткими, в версии 2.4 они стали длиннее. Для эффективного применения этого необходима перекомпиляция версии в glibc-2.1.91 или более позднюю версию. (Ядро различает старые и новые вызовы по флагу IPC_64 в аргументе cmd.)  

    СООТВЕТСТВИЕ СТАНДАРТАМ

    SVr4, SVID. SVID не описывает код ошибки EIDRM.  

    СМ. ТАКЖЕ

    ipc(5), msgget(2), msgsnd(2), msgrcv(2)


     

    Index

    НАЗВАНИЕ
    СИНТАКСИС
    ОПИСАНИЕ
    ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
    НАЙДЕННЫЕ ОШИБКИ
    ЗАМЕЧАНИЯ
    СООТВЕТСТВИЕ СТАНДАРТАМ
    СМ. ТАКЖЕ


    Поиск по тексту MAN-ов: 




    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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