我尝试将一条简单的消息回显到mqueue,但是终端总是返回一个关于echo命令的错误。
例如:
/dev/mqueue$ echo domen >> my_queue
bash: echo: write error: Invalid argument
文件夹/ dev / mqueue中的命令ls -li
返回:
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);
有什么问题,我无法使用终端命令写入队列?
答案 0 :(得分:1)
根本问题是shell不会使用mq_open()
打开邮件队列,而echo
不会使用mq_send()
来编写邮件。这些是需要的工具。您需要编写mqecho
命令以写入消息队列,并使用mqread
命令从消息队列中读取。