The OpenNET Project / Index page

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

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

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

msgget (2)
  • msgget (1) ( Solaris man: Команды и прикладные программы пользовательского уровня )
  • msgget (2) ( Solaris man: Системные вызовы )
  • >> msgget (2) ( Русские man: Системные вызовы )
  • msgget (2) ( Linux man: Системные вызовы )
  • msgget (3) ( FreeBSD man: Библиотечные вызовы )
  • msgget (3) ( POSIX man: Библиотечные вызовы )
  •  

    НАЗВАНИЕ

    msgget - получает идентификатор очереди сообщений  

    СИНТАКСИС

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

    int msgget(key_t key, int msgflg);  

    ОПИСАНИЕ

    Эта функция возвращает идентификатор очереди сообщений, связанный со значением параметра key . Она также создает новую очередь сообщений, если key равен IPC_PRIVATE; в случае если key не равен IPC_PRIVATE, то с параметром key не существует ни одной очереди сообщений и в поле msgflg включен флаг IPC_CREAT . (т.е., значение msgflg&IPC_CREAT не равно нулю). Поля IPC_CREAT и IPC_EXCL в msgflg играют ту же роль для очередей сообщений, что и O_CREAT и O_EXCL в параметре mode системной функции open(2): функция msgget вернет ошибку, если в msgflg включены оба флага: IPC_CREAT и IPC_EXCL ,- а такая очередь сообщений для key уже существует.

    При создании очереди вспомогательные 9 битов параметра msgflg определяют права доступа к очереди сообщений. Эти биты прав имеют тот же формат и значение, что и параметр прав доступа для системных функций open(2) или creat(2). (Права на исполнение не используются.)

    Если создается новая очередь сообщений, то этот системный вызов инициализирует системную структуру данных в очереди сообщений msqid_ds следующим образом:

    msg_perm.cuid и msg_perm.uid устанавливаются для эффективного идентификатора пользователя, запускающего вызывающий процесс.
    msg_perm.cgid и msg_perm.gid устанавливаются для эффективного идентификатора группы вызывающего процесса.
    Вспомогательные 9 битов msg_perm.mode приравниваются к вспомогательным 9-и битам msgflg. Значение
    msg_qnum, msg_lspid, msg_lrpid, msg_stime и msg_rtime равно нулю.
    msg_ctime устанавливается согласно текущему времени.
    msg_qbytes устанавливается согласно системному лимиту, заданному MSGMNB.

    Если очередь сообщений уже существует, то проверяются права доступа к ней и производится проверка, есть ли на очереди флаг, сообщающий о ее готовности к удалению.  

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

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

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

    EACCES
    Очередь сообщений для ключа key существует, но вызывающий процесс не имеет прав доступа к ней.
    EEXIST
    Очередь сообщений для ключа key существует, а в поле msgflg включены флаги IPC_CREAT и IPC_EXCL.
    ENOENT
    Для ключа key не существует очереди сообщений, а в поле msgflg не включен флаг IPC_CREAT.
    ENOMEM
    Очередь сообщений необходимо создать, но системе не хватает памяти для хранения новой структуры данных.
    ENOSPC
    Очередь сообщений необходимо создать, но лимит, определяющий количество очередей сообщений (MSGMNI),ужедостигнут.
     

    ЗАМЕЧАНИЯ

    IPC_PRIVATE - это не поле с флагами, а тип key_t . Если при работе с key используется это специальное значение, то функция игнорирует все, кроме 9-и вспомогательных битов msgflg , и создает новую очередь сообщений (если это возможно).

    На функцию msgget влияет системный лимит очередей сообщений.

    MSGMNI
    (лимит очередей сообщений зависит от ограничений системы).
     

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

    Выбор имени IPC_PRIVATE видимо, был неудачным, и IPC_NEW должно более понятно показывать свою функцию.

     

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

    SVr4, SVID. До версии 2.3.20 Linux будет возвращать EIDRM для msgget в очереди сообщений, поставленных на удаление.  

    СМ. ТАКЖЕ

    ftok(3), ipc(5), msgctl(2), msgsnd(2), msgrcv(2)


     

    Index

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


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




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

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