Не удается отобразить в очереди сообщений 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 Команда для чтения из очереди сообщений.

Другие вопросы по тегам