mq_open: Permission denied

问题:linux中使用mq_open(3)时,已经按照man 7 mq_overview提示挂载/dev/mqueue,但还是permission denied。

解决: 可能是你的mq名字设置不对。linux接受的mq名字只能开头带一个斜杠。

mqd_t mqd = mq_open("/tmp/mqd", O_RDONLY | O_CREAT, S_IRUSR| S_IWUSR , NULL); //Permission denied
mqd_t mqd = mq_open("/mqd", O_RDONLY | O_CREAT, NULL);  //Invalid argument 
mqd_t mqd = mq_open("/mqd", O_RDONLY | O_CREAT, S_IRUSR| S_IWUSR , NULL); //正确

而且需要注意的是,如果是需要创建的mqd不存在,那么,必须加上权限设置比如S_IRUSR这些。否则Invalid argument

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值