msgctl (2)
   управляющие операции над очередью  

Синтаксис
 
    # include <sys/ipc.h>
    # include <sys/msg.h>

    int msgctl  (int  shmid, int cmd, struct msgid_ds *buf)    

Описание
  msgctl выполняет управляющие операции над очередью сообщений. Очередь задается аргументом msgid - идентификатором очереди. Выполняемая операция задается аргументом cmd. Аргумент buf служит представления информации о состоянии очереди:
            struct msgid_ds {
              struct ipc_perm msg_perm; /* Структура прав на выполнение операций */
              struct msg *msg_first;    /* Указатель на первое сообщение в очереди */
              struct msg *msg_last;     /* Указатель на последнее сообщение */
              ushort msg_cbytes;/* Текущее число байт в очереди */
              ushort msg_qnum;  /* Число сообщений в очереди */
              ushort msg_qbytes;/* Макс. допустимое число байт в очереди */
              ushort msg_lspid; /* Идентификатор последнего отправителя */
              ushort msg_lrpid; /* Идентификатор последнего получателя */
              time_t msg_stime; /* Время последн. отправления */
              time_t msg_rtime; /* Время последнего получения */
              time_t msg_ctime; /* Время последнего изменения */
            };
            struct ipc_perm
            {
              key_t  key;
              ushort uid;   /* euid и egid владельца */
              ushort gid;
              ushort cuid;  /* euid и egid создателя */
              ushort cgid;
              ushort mode;  /* младшие 9 бит доступа */
              ushort seq;   /* номер последовательности */
            };

Операции, выполняемые системным вызовом msgctl, следующие:
 IPC_STAT  Копировать информацию из структуры очереди в структуру, на которую указывает buf.
 IPC_SET  Присвоить полям структуры ipc_perm соответствующие значения, находящиеся в структуре, на которую указывает buf.
 IPC_RMID  Удалить очередь.

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

См.также
  msgget, msgrcv, msgsnd.


Список системных вызовов