Не удается отобразить в очереди сообщений POSIX
Я пытаюсь вывести простое сообщение в mqueue, но терминал всегда возвращает ошибку о команде echo.
Пример:
/dev/mqueue$ echo domen >> my_queue
bash: echo: write error: Invalid argument
команда ls -li
в папке /dev/mqueue возвращает:
total 0
29823 -rw-rw-r-- 1 domen domen 80 dec 24 14:18 my_queue
Я создаю mqueue в моей C-программе следующим образом:
int fd_queue;
char queue_name[] = "/my_queue";
char message[4097];
struct mq_attr queue_parameters;
queue_parameters.mq_maxmsg = 5;
queue_parameters.mq_msgsize = 4096;
fd_queue = mq_open(queue_name,O_RDWR|O_CREAT|O_EXCL,0664, &queue_parameters);
В чем проблема, что я не могу записать в очередь, используя терминальные команды?
1 ответ
Решение
Основная проблема заключается в том, что оболочка не открывает очередь сообщений с mq_open()
а также echo
не использует mq_send()
написать сообщение. Это инструменты, которые необходимы. Вам нужно написать mqecho
команда для записи в очередь сообщений и mqread
Команда для чтения из очереди сообщений.