yig*_*cuk 1 c message-queue mqueue
我无法在 C 中创建和打开消息队列。
我尝试了各种函数参数mq_open(),但没有任何结果。
我检查过一些类似的问题,但未能找到解决方案。
我不确定我做错了什么。
我收到mq_open: Invalid argument错误。
// Create the message queue
mqd_t mq;
// Open the message queue
mq = mq_open(argv[1], O_RDONLY | O_CREAT, 0666, NULL);
if (mq == (mqd_t)-1) {
perror("mq_open");
exit(EXIT_FAILURE);
}
Run Code Online (Sandbox Code Playgroud)
我随意给它命名为“a”。
\n\n我随意给它起了个名字“a”。
\n
这是消息队列的无效名称。此类名称必须以前导“/”开头。这在mq_overview 的手册页中有详细说明,在 mq_open 的手册页中引用了它:
\n\n\n使用 mq_open(3) 创建和打开消息队列;该函数返回一个消息队列描述符 (mqd_t),用于在以后的调用中引用打开的消息队列。每个消息队列都是由 /somename 形式的名称标识的;也就是说,最多为 NAME_MAX(即 255)个字符的空终止字符串,其中包含一个初始斜杠,后跟一个或\n多个字符,其中没有一个是斜杠。两个进程可以通过将相同的名称传递给 mq_open(3) 来操作同一队列。
\n