无法回显到 POSIX 消息队列
Can not echo into POSIX message queue
我尝试将一条简单消息回显到 mqueue 中,但终端总是 returns 关于回显命令的错误。
示例:
/dev/mqueue$ echo domen >> my_queue
bash: echo: write error: Invalid argument
文件夹 /dev/mqueue 中的命令 ls -li
returns:
total 0
29823 -rw-rw-r-- 1 domen domen 80 dec 24 14:18 my_queue
我通过以下方式在我的 C 程序中创建 mqueue:
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);
有什么问题,我无法使用终端命令写入队列?
根本问题是 shell 不使用 mq_open()
打开消息队列,并且 echo
不使用 mq_send()
写入消息。这些是需要的工具。您需要编写一个 mqecho
命令来写入消息队列,以及一个 mqread
命令来从消息队列中读取。
我尝试将一条简单消息回显到 mqueue 中,但终端总是 returns 关于回显命令的错误。
示例:
/dev/mqueue$ echo domen >> my_queue
bash: echo: write error: Invalid argument
文件夹 /dev/mqueue 中的命令 ls -li
returns:
total 0
29823 -rw-rw-r-- 1 domen domen 80 dec 24 14:18 my_queue
我通过以下方式在我的 C 程序中创建 mqueue:
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);
有什么问题,我无法使用终端命令写入队列?
根本问题是 shell 不使用 mq_open()
打开消息队列,并且 echo
不使用 mq_send()
写入消息。这些是需要的工具。您需要编写一个 mqecho
命令来写入消息队列,以及一个 mqread
命令来从消息队列中读取。