mq_open创建队列失败

server/2025/1/23 8:10:03/
  1. mq_open创建队列失败

Error creating message queue: Invalid argument

问题:linux中mq_open创建队列失败,提示该问题,怎么解决

原因:队列名(name)问题:

1)POSIX消息队列名必须以/开头。队列名不能包含/作为路径分隔符(除了开头的那个),因为它被视为文件名而不是路径。

2)队列名可能太长或包含非法字符(尽管POSIX标准通常只限制以/开头,但最好避免使用特殊字符)

解决:

#include <stdio.h> 

#include <stdlib.h> 

#include <mqueue.h> 

#include <fcntl.h> 

#include <sys/stat.h> 

#include <string.h> 

#include <errno.h> 

 

int main() { 

    const char *mq_name = "/my_queue"; 

    mqd_t mqdes; 

    struct mq_attr attr; 

 

    attr.mq_flags = 0; 

    attr.mq_maxmsg = 10; 

    attr.mq_msgsize = 256; 

    attr.mq_curmsgs = 0; // 这个字段在mq_open时会被忽略 

 

    mqdes = mq_open(mq_name, O_CREAT | O_RDWR, S_IRUSR | S_IWUSR, &attr); 

    if (mqdes == (mqd_t)-1) { 

        perror("mq_open failed"); 

        exit(EXIT_FAILURE); 

    } 

 

    printf("Message queue '%s' opened successfully. Descriptor: %ld\n", mq_name, (long)mqdes); 

 

    // ... 使用mqdes进行队列操作 ... 

 

    mq_close(mqdes); 

    mq_unlink(mq_name); // 删除队列(可选) 

 

    return EXIT_SUCCESS; 

}


http://www.ppmy.cn/server/160678.html

相关文章

Python 轻松扫描,快速检测:高效IP网段扫描工具全解析

Python 轻松扫描&#xff0c;快速检测&#xff1a;高效IP网段扫描工具全解析 相关资源文件已经打包成EXE文件&#xff0c;可双击直接运行程序&#xff0c;且文章末尾已附上相关源码&#xff0c;以供大家学习交流&#xff0c;博主主页还有更多Python相关程序案例&#xff0c;秉着…

Hadoop•搭建完全分布式集群

听说这里是目录哦 一、安装Hadoop&#x1f955;二、配置Hadoop系统环境变量&#x1f96e;三、验证Hadoop系统环境变量是否配置成功&#x1f9c1;四、修改Hadoop配置文件&#x1f36d;五、分发Hadoop安装目录&#x1f9cb;六、分发系统环境变量文件&#x1f368;七、格式化HDFS文…

Threejs的学习-常用的API

为了方便自己后期查询方便&#xff0c;这里做个记录记录使用过的Threejs的对象&#xff0c;后续慢慢更新&#xff0c;如果觉得有用的话别忘了收藏下 渲染器 WebGLRenderer 负责将3D场景渲染到HTML元素&#xff08;通常是<canvas>&#xff09;上 常用的参数&#xff1…

机器学习练习day1

使用scikit-learn中的KNN包实现对鸢尾花数据集或者自定义数据集的的预测 KNN算法有三要素&#xff1a;1.K值选择&#xff1b;2.距离选择&#xff1b;3.分类规则选择。 步骤1 导入数据集 步骤2 将数据集设置标签 步骤3 设置超参数 代码 from sklearn.neighbors import KNei…

信号失真度测试仪、音频失真度测试仪、失真度仪、全自动数字失真度测量仪

谐波失真是由放大器的非线性引起的&#xff0c;失真的结果是使放大器输出产生了原信号中没有的谐波分量&#xff0c;使声音失去了原有的音色&#xff0c;严重时声音会发破、刺耳。多媒体音箱的谐波失真在标称额定功率时的失真度均为10%&#xff0c;要求较高的一般应该在1%以下。…

Vue 3 的 keep-alive 及生命周期钩子

在 Vue 3 中&#xff0c;keep-alive 是一个内置组件&#xff0c;用于提高性能和减少不必要的组件销毁与重建。它与组件的生命周期紧密相关&#xff0c;特别是在动态组件和路由切换场景下&#xff0c;能够缓存组件的状态并避免重新渲染。 而 onActivated 和 onDeactivated 是 …

ubuntu20.04搭建wordpress时出现问题汇总

主要参考教材&#xff1a;ubuntu20.04安装wordpress教程 问题1&#xff1a; rootracknerd-e7ec47c:~# sudo apt-get install php8.1 Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package php8.1 E…

【25考研】也很难!清华大学计算机考研复试难度分析!

一、复试内容 复试考核注意事项&#xff1a; 1、笔试环节&#xff1a;笔试部分包括英语和专业课的考查。其中英语笔试部分把包括英语听力和口语测试&#xff1b;关于专业课考试&#xff0c;有的学校规定了考试范围&#xff0c;考生可以在初试结束后尽快开始复习&#xff1b;对…