博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【学习随手记】POSIX消息队列执行报Permission denied的问题。
阅读量:5277 次
发布时间:2019-06-14

本文共 1265 字,大约阅读时间需要 4 分钟。

最近学习UNIX环境网络编程POSIX消息队列的时候发现一个问题,在mq_open的时候总会报Permission denied的错误。

查看mq_overview后才得以解决。

mq_overview原文描述如下:

Mounting the message queue file system

       On Linux, message queues are created in a virtual file system.   (Other
       implementations  may  also  provide such a feature, but the details are
       likely to differ.)  This file system can be mounted (by the  superuser)
       using the following commands:
           # mkdir /dev/mqueue
           # mount -t mqueue none /dev/mqueue
       The sticky bit is automatically enabled on the mount directory.
       After  the file system has been mounted, the message queues on the sys‐
       tem can be viewed and manipulated using the commands usually  used  for
       files (e.g., ls(1) and rm(1)).

创建MQ的代码如下:

1 #include 
2 3 int 4 main(int argc, char **argv) 5 { 6 int c, flags; 7 mqd_t mqd; 8 9 flags = O_RDWR | O_CREAT;10 11 while ((c = Getopt(argc, argv, "e")) != -1)12 {13 switch (c) 14 {15 case 'e':16 flags |= O_EXCL;17 break;18 }19 }20 21 if (optind != argc - 1)22 err_quit("usage: mqcreate [-e]
");23 24 mqd = Mq_open(argv[optind], flags, 0777, NULL);25 Mq_close(mqd);26 27 exit(0);28 }

 

转载于:https://www.cnblogs.com/zhiqli/p/3487638.html

你可能感兴趣的文章
NPOI处理Word文本中上下角标
查看>>
Android笔记 Handler
查看>>
如何阅读大型前端开源项目的源码(转)
查看>>
java.util.Arrays类详解
查看>>
NYOJ-626-intersection set(二分查找)
查看>>
项目管理之路(1):初步踏入项目管理
查看>>
Java 中 静态方法与非静态方法的区别
查看>>
echarts饼图显示百分比
查看>>
JMS消息
查看>>
Jenkins+ProGet+Windows Batch搭建全自动的内部包(NuGet)打包和推送及管理平台
查看>>
php上传文件及头像预览
查看>>
大四java实习生的一些经历
查看>>
线程池的概念
查看>>
Oracle_Statspack性能诊断工具
查看>>
Java 序列化
查看>>
Java 时间处理实例
查看>>
Java 多线程编程
查看>>
Java 数组实例
查看>>
mysql启动过程
查看>>
2017前端面试题总结
查看>>