【问题标题】:Can not echo into POSIX message queue无法回显到 POSIX 消息队列
【发布时间】:2016-12-24 13:24:49
【问题描述】:

我尝试将简单的消息回显到 mqueue,但终端总是返回有关回显命令的错误。

示例:

/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);

问题是什么,我无法使用终端命令写入队列?

【问题讨论】:

    标签: c linux bash queue posix


    【解决方案1】:

    根本问题是shell没有用mq_open()打开消息队列,echo没有用mq_send()写消息。这些是需要的工具。您需要编写 mqecho 命令来写入消息队列,并编写 mqread 命令来读取消息队列。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-06
      • 2019-03-17
      • 2020-11-27
      • 1970-01-01
      • 2020-04-18
      • 1970-01-01
      • 2016-03-21
      • 2015-04-12
      相关资源
      最近更新 更多