6.5. Функция msgctl
Функция msgctl позволяет управлять очередями сообщений:
#include
int msgctl(int msqid, int cmd, struct msqid_ds *buff);
/* Возвращает 0 в случае успешного завершения, –1 в случае ошибки */
Команд (аргумент cmd) может быть три:
IPC_RMID — удаление очереди с идентификатором msqidиз системы. Все сообщения, имеющиеся в этой очереди, будут утеряны. Мы уже видели пример действия этой функции в листинге 3.2. Для этой команды третий аргумент функции игнорируется.
IPC_SET — установка значений четырех полей структуры msqid_ds данной очереди равными значениям соответствующих полей структуры, на которую указывает аргумент buff: msg_perm.uid, msg_perm.gid, msg_perm.mode, msg_qbytes.
IPC_STAT — возвращает вызвавшему процессу (через аргумент buff) текущее содержимое структуры msqid_ds для указанной очереди.